相关疑难解决方法(0)

用于长时间运行的Android AsyncTask

它说,在这里引用AsyncTask的文档

理想情况下,AsyncTasks应该用于短操作(最多几秒钟.)如果需要保持线程长时间运行,强烈建议您使用java.util.concurrent pacakge提供的各种API,例如Executor,ThreadPoolExecutor和FutureTask.

现在我的问题出现了?doInBackground函数在UI线程下运行.那么在这里长期运行会有什么危害呢?

android android-asynctask

88
推荐指数
2
解决办法
3万
查看次数

即使活动已经销毁,AsyncTask也不会停止

我有一个AsyncTask对象,它在创建活动时开始执行,并在后台执行操作(下载最多100个图像).一切都很好,但有一种我不能理解的特殊行为.

例如:当Android屏幕的方向发生变化时,活动将被销毁并再次创建.所以我重写onRetainNonConfigurationInstance()方法并保存在AsyncTask中执行的所有下载数据.我这样做的目的是每次在方向更改期间销毁活动时都不会运行AsyncTask,但正如我在日志中可以看到的,之前的AsyncTask仍然在执行.(虽然数据保存正确)

我甚至尝试在活动的onDestroy()方法中取消AsyncTask,但日志仍然显示AsyncTask正在运行.

这是非常奇怪的行为,如果有人能告诉我停止/取消AsyncTask的正确程序,真的很感激.

谢谢

android android-asynctask

72
推荐指数
2
解决办法
7万
查看次数

标签 统计

android ×2

android-asynctask ×2