【发布时间】:2013-06-19 19:45:45
【问题描述】:
我一直在寻找答案,但没有人真正回答,因为为此使用异步任务毫无意义。在 Android API 11 或更高版本中,它将强制您在主线程上执行网络请求对其进行编码,因此我必须执行异步任务。那么,问题来了:是否可以等到异步任务完成后再继续?因为我需要调用方法等的数据。
这是我的代码:
public JSONObject getJSONFromUrl(String url) {
this.url = url;
new loadURL().execute();
// Do this when ASYNC HAS FINISHED
return jObj;
}
class loadURL extends AsyncTask <Void, Void, Void> {
protected void onPreExecute() {
}
protected Void doInBackground(Void... unused) {
//do stuff in background
return (null);
}
}
}
任何要回答的问题都可以发表评论。感谢您的帮助。
【问题讨论】:
-
在您的布局中添加一个不确定的进度条(阻止您的内容)或显示一个加载对话框,直到在您的异步任务上调用 onPostExecute()。如果您尝试在该网络请求期间阻塞主线程,android 会给您一个 ANR,您的用户会感到不安。
标签: java android android-asynctask