我需要在我的字符串变量中获取AsyncTask结果,查看我的编码
我的异步课程
String result = new GetFavCityList().execute();
// getFavcity List
public class GetFavCityList extends AsyncTask<Void, Void, String> {
@Override
protected String doInBackground(Void... params) {
// TODO Auto-generated method stub
FavCity.clear();
getfavcity();
return null;
}
@Override
protected void onPostExecute(String result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
}
}
我的解析功能
public void getfavcity() {
FavCity.clear();
String url = Utility.gBasepath + "getCityList/" + gCountryValue + "/"
+ gFavState.replaceAll(" ", "%20");
JSONObject json = Getjsonurl.getJsonUrl(url, Profile.this);
}
现在,我需要在字符串结果中获取json返回值,如何获取值请帮助我获取值。
感谢。
答案 0 :(得分:1)
首先将getfavcity()
的返回类型从 void 更改为 String 。
像,
public String getfavcity() {
FavCity.clear();
String url = Utility.gBasepath + "getCityList/" + gCountryValue + "/"
+ gFavState.replaceAll(" ", "%20");
JSONObject json = Getjsonurl.getJsonUrl(url, Profile.this);
return json.toString();
}
doInBackground()
@Override
protected String doInBackground(Void... params) {
// TODO Auto-generated method stub
FavCity.clear();
return getfavcity();
}
最后和主要..
使用AsyncTask的<{1}}方法(注意:它的UI阻止功能)
.get()
最佳方法:
不要使用AsyncTask的String result = new GetFavCityList().execute().get();
方法,只需在AsyncTask的.get()
中使用String结果。
答案 1 :(得分:0)
让getfavcity()
返回您的字符串,然后在doInBackground()
答案 2 :(得分:-1)
new GetFavCityList().get();
尝试使用上述方法。但是您需要将参数Void更改为String