Android应用程序进程完成后执行方法

时间:2015-03-16 20:23:45

标签: android kill

我正在开发Android应用程序,我需要知道操作系统何时终止该进程,因此我可以向我的服务器发出HTTP请求。我试图启动一个服务并将请求放在onDestroy()方法中,但只有在我手动杀死它时(START_STICKY),服务才会停止。我使用START_NOT_STICKY,服务以app结束,但它不执行onDestroy()方法。

我的清单看起来像这样:

<service
android:name=".CheckSessionEndService"
android:enabled="true"
android:exported="false" >
</service>

2 个答案:

答案 0 :(得分:0)

如果系统杀死应用程序,

OnDestroy()并不总是有人调用。您必须在几个地方调用您的方法 - 在onDestroy和onStop()以及onRetainNonConfigurationInstance()中。但是onStop()有更多的机会被调用,如果系统需要释放memmory,而不是onDestroy()。

答案 1 :(得分:0)

当这个过程被杀死时,它真的消失了。你不能再执行任何东西了。服务停止后,通过stopService()或stopSelf()(并且服务未绑定)调用onDestroy(),但这并不一定意味着该进程已被终止。如果您担心用户会从最近的位置轻扫您的应用,则可以尝试

http://developer.android.com/reference/android/app/Service.html#onTaskRemoved(android.content.Intent)

http://developer.android.com/reference/android/content/pm/ServiceInfo.html#FLAG_STOP_WITH_TASK