【发布时间】:2013-10-31 11:02:47
【问题描述】:
我正在尝试从 DoInBackground 中的异步任务返回值,但调用 get() 方法会冻结我的 UI。如何将我的代码重写为回调方法? :
public class GetUrlDataTask extends AsyncTask<String, Integer, String> {
String response;
HttpUtils util;
@Override
protected String doInBackground(String... params) {
try {
util = new HttpUtils(params[0]);
response = util.getContent();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return response;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
}
在我的活动中,我得到response = new GetUrlDataTask().execute("site").get;的结果
【问题讨论】:
-
这与异步完全相反。您需要使用回调。
-
您可以将意图与广播接收器或事件总线一起使用,回调也是一个好主意
-
您可以将其设为内部类并直接从
onPostExecute()或see this answer 调用Activity方法,了解如何使用interface和AsyncTask
标签: android http android-asynctask