我有2个关于服务的onDestroy()方法的问题
1.如果服务由于内存不足而被系统杀死,那么是否会调用服务的onDestroy()方法。
2.如果服务被终止,将会调用服务的onDestroy()方法,因为用户在重新发送的应用程序屏幕中刷掉了启动该服务的应用程序。
答案 0 :(得分:3)
当系统终止服务时,将调用onDestroy,但是当您的应用程序进程终止时,可能无法调用onDestroy。
onDestroy()将被调用IF服务因此而被终止。 (情况并非总是这样)有关详细信息,请参阅此discussion。
答案 1 :(得分:2)
第一个问题。
根据我以前的经验和Android开发文档。即使服务被系统杀死,也会调用onDestroy()
服务方法.Google Android开发文档在下方。
服务既可以启动,也可以绑定连接。在 在这种情况下,系统只要保持服务运行 要么启动,要么有一个或多个连接 Context.BIND_AUTO_CREATE标志。曾经两种情况都没有 保持,服务的onDestroy()方法被调用,服务是 有效终止。所有清理(停止线程,取消注册 接收器)应该从onDestroy()返回时完成。
第二个问题。
如果您想在关闭应用时终止服务,那么是的。 Aneroid服务在后台运行,并且在您销毁应用程序时通常不会被杀死。