내 앱은 웹 기반이며 대부분의 통신에 Json을 사용합니다. 나는 코드를 최적화하는 과정에 있으며 문제가 발생했다.안드로이드 - Gson과 함께 사용하기 위해 .class를 AsyncTask에 전달합니다.
이전에는 모든 작업에서 AsyncTask의 개별 하위 클래스를 사용하여 webservices를 호출했으며 응답을 String으로 가져온 다음 Json으로 구문 분석하고 마지막으로 Gson fromJson() 메서드를 사용하여 Java 객체를 만듭니다.
저는 모두가 사용할 수있는 단일 클래스로 범위를 좁히려고합니다. 현재, 나는 내 doInBackground() .. 호출 할 수있는 방법과 매개 변수가있는 HashMap에있는 문자열을 매개 변수로
@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;
}
그래서 내가 통과에 대해 다음 있습니다. 그런 다음 호출하는 Activity는 Gson을 사용하여 Json을 Java 객체로 구문 분석합니다.
그러나 응답의 일부가 꽤 클 수도 있기 때문에 Json을 UI 스레드에서 파싱하지 않고 AsyncTask로 파싱하는 것을 원하지 않습니다. 이를 위해서는 Gson(). fromJson() 메서드가 필요하기 때문에 어떻게 든 T.class 매개 변수를 doInBackground() 메서드에 전달해야합니다. 내 전화는 다음과 같을 것입니다
new AsyncJsonTask().execute("GetValues", parameterMap, POJO.class);
어떻게해야합니까? 그리고 여기를 최소화 할 수있는 올바른 방법입니까?
왜 안 되니? 나에게 좋아 보인다. –
하지만 POJO.class를 객체로 얻는 방법은 무엇입니까 ?? From from (Object ... params) –