在Android上的背景中返回的排序和处理数据

前端之家收集整理的这篇文章主要介绍了在Android上的背景中返回的排序和处理数据前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一些麻烦找到关于Volley和response.Listener的一些信息.

基本上我有一个向后端询问数据的操作,在后台调用Volley(由Volley本身处理),同时在主线程上调用onResponse.

我是否需要自己运行才能在后台处理这些数据,或者有办法强制onResponse在后台运行?

谢谢.

编辑:

这是我正在运行的代码.

private Response.Listener<String> volleyResp = new Response.Listener<String>() {
    @override
    public void onResponse(final String jsonResp) {
        new Thread() {
            public void run() {
                // Do something ... Insert in DB for example.
            }
        }.start();
    }

解决方法

请仔细阅读我的回复

如果要在与请求相同的线程中“处理”数据,则应该具有Request(或JsonRequest)的子类并实现parseNetworkResponse(NetworkResponse响应)

示例:

public class TotoRequest extends JsonRequest {
    @Override
    protected Response parseNetworkResponse(NetworkResponse response) {
        try {
            String jsonString =
                    new String(response.data,HttpHeaderParser.parseCharset(response.headers));
            JSONObject jsonObject = new JSONObject(jsonString);
            // Process data here
        } catch (UnsupportedEncodingException | JSONException e) {
            return Response.error(new ParseError(e));
        }
    }
}

这是对你问题的回复,但我认为这不是你真正想要的.

如果您的数据很小,那么在主线程中处理数据可能更安全.

如果您的数据很重要,或者您想在数据库中插入/更新它,您应该继续执行您正在执行的操作.

另外,我建议你使用AsyncTask而不是线程.

猜你在找的Android相关文章