繁体   English   中英

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

[英]Make AsyncTask (or a service) unkillable (or something approaching it)

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

我建议您将其作为一项服务并使用startForeground()使其更具抵抗力。 但即便如此,它也可能会因内存不足而停止。

不,没有,否则每个人都会滥用它。 如果操作系统终止了您的服务,那么它就是有原因的。 如果条件允许,并且您的服务符合条件,Android 认为应该重新启动它就会重新启动。

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

所以,让它成为一个服务(它不应该是一个前台服务,如果它不做任何像播放音乐这样的面向用户的事情),而是一个可以保存其状态的服务( onMemoryLow()onDestroy()方法) . 因此,在重新启动后,它可以在用户不知情的情况下恢复其进程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM