Мое приложение использует веб-интерфейс и использует Json для большей части общения.Я нахожусь в процессе оптимизации кода и столкнулся с некоторыми проблемами.
Ранее все мои действия использовали отдельные подклассы AsyncTask для выполнения вызовов к веб-сервисам, они получали ответ в виде строки и затем анализировали его как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;
}
Так что я передаю в качестве параметров строку, которая является вызываемым методом, и HashMap, который имеет параметры.Затем вызывающий Activity анализирует Json как объект Java с использованием Gson.
Однако, поскольку некоторые ответы могут быть довольно большими, я не хочу, чтобы Json анализировался в потоке пользовательского интерфейса, а скорее в AsyncTask.,Для этого мне нужно как-то передать параметр T.class в мой метод doInBackground (), потому что это требуется для метода Gson (). FromJson ().Мой звонок будет примерно таким:
new AsyncJsonTask().execute("GetValues", parameterMap, POJO.class);
Как я могу это сделать, и это правильный подход к минимизации здесь?