Android 在离开活动记录时如何处理后台话题?
我需要我的Android应用程序在其活动被置于后台或被杀死时将其状态保存到磁盘。有人建议我在调用 onPause() 时启动一个线程,并在那里执行任何昂贵的 I/O 过程(请参阅为图像编辑器快速可靠地保存/加载文档状态)。
在什么情况下操作系统会杀死线程,这些情况发生的频率如何?
我假设这就像如何处理活动一样,操作系统可以任意决定杀死线程,但大多数情况下只会在资源非常有限的情况下这样做。不过,如果能找到一些具体的文档就好了。
通过一些测试代码,在onPause()中启动的后台线程将在我的设备上的后台无限期地运行(我尝试加载了很多应用程序,但无法将其杀死)。
对于我的特定应用,我正在编写一个位图编辑器,其中我使用命令模式和 Memento 模式来允许撤消和重做编辑。我希望用户能够撤消/重做他们的编辑,即使例如用户接到电话,并且活动在后台被杀死。我能想到的最好的解决方案是使用后台线程在应用程序使用期间不断将我的命令和memento对象保存到磁盘,并在调用onPause时完成保存后台线程中剩余的任何对象。在更糟糕的情况下,如果线程被杀死,我只会丢失一些编辑。