当AsyncTask完成工作时,我想调用一个方法onResume()
。
AsyncTask没有嵌入到我的活动中 - 它们是单独的类,因此我无法在方法onResume()
中调用方法onPostExecute()
。
如何等待AsyncTask结束调用方法onResume()
?
非常感谢你的回答,我解决了这个问题。
答案 0 :(得分:1)
我认为你应该看一下onResume()方法的含义。
http://developer.android.com/training/basics/activity-lifecycle/starting.html
此方法由活动的生命周期调用,因此您不应在代码中调用此方法。如果你需要在活动的生命周期的这一点上制定一些逻辑,那就覆盖他们的竞争。
尽管如此,如果要在嵌入AsyncTask的类中调用Activity方法,可以将上下文或完整活动作为此类构造函数的参数传递。 看看这个答案:
答案 1 :(得分:0)
你可以使用你可以在后执行上实现的界面
示例:
public class DownloadFileUsingAsync extends AsyncTask<String, String, String> {
public interface OnTaskCompleted {
void onTaskCompleted(String str);
void onTaskFailure(String str);
}
private OnTaskCompleted listener;
public DownloadFileUsingAsync(OnTaskCompleted listener,File folderPath,String fileName,
String data, String method,
int timeout) {
this.listener = listener;
}
@Override
protected String doInBackground(String... params) {
//doInBackground
}
@Override
protected void onPostExecute(String fileUrl) {
if (listener != null) {
listener.onTaskCompleted(fileUrl);
}
}
@Override
protected void onPreExecute() {
}
protected void onProgressUpdate(Void... values) {
}
}
调用aynctask
new DownloadFileUsingAsync(listener,folder,docname, null, "GET",
10000).execute(docUrl);
在post执行后你可以像这样处理监听器:
private OnTaskCompleted listener = new OnTaskCompleted() {
//write here
}
/**
* onTaskFailure method for load base image failure callback.
*
*/
public void onTaskFailure(final String error) {
//handle error
}
};