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

Java 活动销毁或重新启动期间的后台工作,java,android,multithreading,Java,Android,Multithreading,我在Android开发者中读到过这篇文章 注意:在使用worker时,您可能会遇到另一个问题 由于运行时,线程在活动中意外重新启动 配置更改(例如用户更改屏幕时 方向),这可能会破坏工作线程。看看你能做什么 在其中一次重新启动期间持续执行任务,以及如何正确执行任务 当活动被销毁时取消任务,请参阅源代码 对于Shelfs示例应用程序 我无法从提供的信息中清楚地理解 当我有一个绑定到Ui线程的后台工作,因此可以在配置更改期间停止- 如何在重启期间正确处理工作线程与销毁?如果您的后台工作与活动相关,则

我在Android开发者中读到过这篇文章

注意:在使用worker时,您可能会遇到另一个问题 由于运行时,线程在活动中意外重新启动 配置更改(例如用户更改屏幕时 方向),这可能会破坏工作线程。看看你能做什么 在其中一次重新启动期间持续执行任务,以及如何正确执行任务 当活动被销毁时取消任务,请参阅源代码 对于Shelfs示例应用程序

我无法从提供的信息中清楚地理解

当我有一个绑定到Ui线程的后台工作,因此可以在
配置更改期间停止-


如何在
重启期间正确处理工作线程
销毁

如果您的后台工作与
活动
相关,则应使用
异步任务
,它提供了一种
取消
方法。在任务中,您可以检查
isCancelled
,以了解是否要退出操作。当Android再次创建活动时,您将有机会再次启动任务


如果您的后台工作与任何特定活动或UI元素无关,则应使用
IntentService
并在应用程序中的任何位置运行该服务。这样背景工作就不会因方向改变而中断


一个快速修复/黑客有时使用的是配置Android不重新创建您的活动时,方向改变-你可以做到这一点与<代码> Android:配置更改< /代码>元素的活动在ANDROIDMANDS.XML.< /P>如果你需要一些持久的背景,考虑使用服务。如果您所做的与异步加载要显示的活动的内容有直接关系,请设计线程,使其能够在没有死锁的情况下完成并忘记它。是否可以发布对Shalves示例应用程序的引用?注意。除非您真正了解自己在做什么,否则不要使用

android:configChanges
。这是一种在你的生命周期处理中隐藏bug的完美方法,因为它只能处理所有可以重新创建你的活动的方式的子集。同意,这就是为什么我把它称为黑客。可能根本就不该提这件事。