java - Android - 将 .class 传递给 AsyncTask 以与 Gson 一起使用

标签 java android gson android-asynctask

我使用的应用程序是基于网络的,并且使用 Json 进行大部分通信。我在优化代码的过程中遇到了一些问题。

以前,我所有的 Activity 都使用 AsyncTask 的单独子类来调用 Web 服务,它们将响应作为字符串获取,然后将其解析为 Json,最后使用 Gson fromJson() 方法生成 Java 对象。

我正在尝试将其缩小为可供所有人使用的单个类。目前,我的 doInBackground() 有以下内容..

@Override
protected JsonObject doInBackground(Object... params) {

    String res = WebServices.httpGet(params[0]., (Map<String, String>) params[1]);
    JsonParser parser = new JsonParser();
            JsonObject jsonObject = parser.parse(res);
    return jsonObject;
}

因此,我将要调用的方法 String 和具有参数的 HashMap 作为参数传递。调用 Activity 然后使用 Gson 将 Json 解析为 Java 对象。

但是,由于某些响应可能非常大,我不希望在 UI 线程中而是在 AsyncTask 中解析 Json。为了做到这一点,我需要以某种方式将 T.class 参数传递给我的 doInBackground() 方法,因为 Gson().fromJson() 方法需要它。我的电话会是这样的

new AsyncJsonTask().execute("GetValues", parameterMap, POJO.class);

我怎样才能做到这一点,这是最小化的正确方法吗?

最佳答案

Class<?>Object 的子类型,因此您应该能够按原样传递它。

关于java - Android - 将 .class 传递给 AsyncTask 以与 Gson 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9047340/

相关文章:

java - Java中的线程安全双缓冲缓存(不适用于图形)?

java - for循环中的静态值

android - 微调器未填充 json 数据

java - 错误和应用程序停止不幸的是,StrictMode.ThreadPolicy() 也不起作用

java - 在android中使用相机拍照后如何永久保存图像?

java - Gson 序列化 Integer 对象

java - Cause=slf4j 依赖冲突 - NoSuchMethodError : org. slf4j.helpers.MessageFormatter.format

java - MS SQL 多线程死锁

java - GAE 将 JSON 对象从请求映射到 Bean

java - 为具有自己的 JSON 序列化实现的类编写 Gson TypeAdapter