使AsyncTask(或服务)不可杀死(或接近它的东西)

时间:2012-12-03 15:16:27

标签: java android service kill dalvik

在我的应用程序中有一个AsyncTask,它在后台运行很长时间。问题是,在内存不足的情况下它会被VM杀死,有没有办法让应用程序的优先级更高,以致它更难被杀死?我应该使用服务吗?我唯一的目标是让它难以杀人,任何建议或指导都将不胜感激,谢谢。

3 个答案:

答案 0 :(得分:1)

我建议你把它作为服务并使用startForeground(),这会使它更具抵抗力。但即便如此,它也可能因低内存而停止。

答案 1 :(得分:1)

不,没有,否则每个人都会滥用这个。如果操作系统杀死了您的服务,那么就有理由这样做。如果条件允许且您的服务符合条件,则如果Android认为它将重新启动,则会重新启动。

答案 2 :(得分:0)

如果您的服务被终止,那么只要资源允许,系统就会重新启动它。

所以,让它成为一项服务(它不应该是前台服务,如果它不像播放音乐那样做任何明确的用户导向),而是一种可以保存其状态的服务(onMemoryLow()onDestroy()方法)。因此,重新启动后,它可以恢复其过程,而用户不是更聪明的。