【发布时间】:2016-04-21 22:22:53
【问题描述】:
我有一个 AsyncTask 实现如下:
AsyncTask asyncTask = new AsyncTask() {
@Override
protected Object doInBackground(Object[] params) {
//downloading images from google places api
}
@Override
protected void onPostExecute(Object o) {
}
}
};
asyncTask.execute();
此 AsyncTask 被触发多次运行,并由另一个 AsyncTask 的 doInBackground() 方法的范围执行。它运行良好第一次我加载一个活动,如果我让所有数据下载然后退出活动(以便调用 onStop())并重新打开活动它也运行良好,然后, 但是,如果我在下载所有数据之前退出活动,当我重新打开活动时它不会运行。
有人知道这是为什么吗?谁能推荐一种不涉及 AsynTask 的更好方法?
注意:我曾尝试使用 executeOnExecutor(),但并没有解决问题。
提前致谢
【问题讨论】:
-
您以哪种方式开始任务?另外,你是如何离开和重新进入活动的?
-
我在另一个任务的 doInBackground() 方法中调用的方法中启动任务。我离开并重新进入活动的原因是模拟用户在应用程序中迭代不同的屏幕
-
第一个任务是用什么方法启动的?
-
顺序是这样的:getLocation >queryMapsApiTask > getMainJSONObjectTask>methodToExtractJSONData>getPicturesTask,其中最后一个方法(getPicturesTask)是没有执行的任务
-
在任务中使用任务似乎不是一个好主意。无论如何,看看这个 - stackoverflow.com/questions/10048958/…
标签: java android multithreading android-asynctask