Java 使AsyncTask(或服务)不可修改(或接近它的东西)
在我的应用程序中有一个异步任务,它在后台运行了很长时间。问题是,在内存不足的情况下,它会被VM杀死,有没有办法提高应用程序的优先级,这样就更难杀死它?我应该改用服务吗?我唯一的目标是使其难以杀戮,任何建议或指导都将不胜感激,谢谢。我建议您将其作为一项服务,并使用Java 使AsyncTask(或服务)不可修改(或接近它的东西),java,android,service,kill,dalvik,Java,Android,Service,Kill,Dalvik,在我的应用程序中有一个异步任务,它在后台运行了很长时间。问题是,在内存不足的情况下,它会被VM杀死,有没有办法提高应用程序的优先级,这样就更难杀死它?我应该改用服务吗?我唯一的目标是使其难以杀戮,任何建议或指导都将不胜感激,谢谢。我建议您将其作为一项服务,并使用startForeground(),这将使其更具抵抗力。但即使这样,它也可能在内存不足时停止。如果您的服务被终止,那么系统会在资源允许的情况下尽快重新启动它 因此,让它成为一个服务(如果它不做任何明确面向用户的事情,比如播放音乐,那么它不
startForeground()
,这将使其更具抵抗力。但即使这样,它也可能在内存不足时停止。如果您的服务被终止,那么系统会在资源允许的情况下尽快重新启动它
因此,让它成为一个服务(如果它不做任何明确面向用户的事情,比如播放音乐,那么它不应该是一个前台服务),而是一个可以保存其状态的服务(
onMemoryLow()
和onDestroy()
方法)。因此,重新启动后,它可以在用户不知情的情况下恢复其进程。不,没有,否则每个人都会滥用它。如果操作系统终止了你的服务,那么它就有理由这样做。如果条件允许,并且您的服务符合条件,如果Android认为应该重新启动,它将重新启动。感谢您的快速回复,您能解释一下为什么您的解决方案会比AsyncTask更好吗?如果您的主服务是资源密集型的,您可能还想实现一个简单的,轻量级服务,只检测主服务并根据需要重新启动它。其想法是轻量级服务不太可能被终止。从理论上讲,它应该工作得更好,但你需要测试它,看看它在实践中是如何工作的。谢谢你,j0ntech,我可能会接受你的建议。你在做什么,资源如此密集?你能把每个请求分解成更小的请求吗?