不完全是 ...
你不知何故混合了这些概念Destroyed
和Killed
Destroyed
这是你的应用程序应该准备好处理的事情。由于可能不同的原因(即设备方向更改等),操作系统可能会破坏您的活动(通常是onDestroy()
预先调用,因此您有机会保存重要的内容)并且您的活动中的所有对象都将丢失。但是,您的应用程序可能包含一个以上的活动和/或服务,并且有一个活动被销毁,并不意味着其他活动也将被销毁。
Killed
操作系统可能出于某种原因决定终止您的应用程序。这是通过终止应用程序使用的进程来完成的,该进程是运行构成应用程序的所有活动和服务的进程。您的应用程序不会有任何警告,也无法阻止这种情况发生。您应用程序中的所有对象(由活动和服务使用)都将丢失。
话虽如此,Service
长期活动的优势是什么?
让我们用一个简单的例子:
如果您的活动正在将大文件上传到服务器,并且用户决定更改设备方向,则活动将被破坏并中断上传。即使在活动重新启动时重新开始上传,它也会重新开始。
如果您有服务根据活动的请求执行上传内容,即使您的活动被破坏,该服务仍保持活动状态并且上传继续而不会中断。
注意:
如果您有一个运行时间很长的服务(将运行超过半小时),请将其设置为foregroung service,否则无论如何它都会被杀死。