我正在开发Android应用程序,我需要知道操作系统何时终止该进程,因此我可以向我的服务器发出HTTP请求。我试图启动一个服务并将请求放在onDestroy()方法中,但只有在我手动杀死它时(START_STICKY),服务才会停止。我使用START_NOT_STICKY,服务以app结束,但它不执行onDestroy()方法。
我的清单看起来像这样:
<service
android:name=".CheckSessionEndService"
android:enabled="true"
android:exported="false" >
</service>
答案 0 :(得分:0)
OnDestroy()并不总是有人调用。您必须在几个地方调用您的方法 - 在onDestroy和onStop()以及onRetainNonConfigurationInstance()中。但是onStop()有更多的机会被调用,如果系统需要释放memmory,而不是onDestroy()。
答案 1 :(得分:0)
当这个过程被杀死时,它真的消失了。你不能再执行任何东西了。服务停止后,通过stopService()或stopSelf()(并且服务未绑定)调用onDestroy(),但这并不一定意味着该进程已被终止。如果您担心用户会从最近的位置轻扫您的应用,则可以尝试
或
http://developer.android.com/reference/android/content/pm/ServiceInfo.html#FLAG_STOP_WITH_TASK