活动期间的后台工作销毁或重启

时间:2014-03-09 12:22:42

标签: java android multithreading

我在Android开发人员中已经读过这篇文章

  

警告:使用工作人员时可能遇到的另一个问题   由于运行时,线程在您的活动中意外重启   配置更改(例如用户更改屏幕时)   orientation),这可能会破坏你的工作线程。看看你怎么样   在其中一次重启期间以及如何正确地执行任务   销毁活动时取消任务,请参阅源代码   对于Shelves示例应用程序。

我无法从提供的code

中清楚地理解

当我有一个与Ui线程相关的后台工作,因此可以在configuration change期间停止 -

如何在restart vs destroy期间正确处理工作线程?

1 个答案:

答案 0 :(得分:3)

如果您的后台工作与Activity相关联,则应使用提供AsyncTask方法的cancel。在任务中,您可以检查isCancelled以了解是否退出操作。当Android再次创建活动时,您将有机会再次启动该任务。

如果您的后台工作与任何特定活动或UI元素无关,则应使用IntentService并从应用中的任何位置运行该服务。然后,方向更改不会中断后台工作。

有时使用的快速修复/黑客方法是将Android配置为在方向更改时不重新创建活动 - 您可以使用AndroidManifest.xml中活动的android:configChanges元素执行此操作。