应用程序closures时停止服务

我试图保持服务不断运行,直到用户closures应用程序。

我从我的主要活动的onCreate()方法和onDestroy()方法中的stopService()使用startService() onDestroy()方法。

现在我有问题了,因为看起来我的主要活动已经死亡,并在旋转设备或closures屏幕时重新创build。

只有当用户手动停止应用程序时,如何才能停止我的服务?

在清单文件的服务标签中设置下面的属性,

 <service android:name="service" android:stopWithTask="true"/> 

当这个任务被移除时(应用程序从最近的应用程序列表中closuresondestroy() ,添加这个将调用服务的ondestroy() )。

我的意思是应用程序closures。 用户在“最近的应用程序”屏幕上刷出应用程序。

就Android而言,这不是“closures应用程序”。 那就是“取消任务”(或者有时候是“停止任务” – 谷歌在术语上并不一致)。

当任务被移除时,应该使用onTaskRemoved()调用你的服务。 但是,这应该是当用户通过总览屏幕(又名,最近的任务列表)手动删除任务,并且当任务自然消失在Android 4.4及以下,因为任务太旧。

首先将android:configChanges节点添加到Activity的清单节点,以便在设备旋转时停止重新启动活动。

 android:configChanges="keyboardHidden|orientation" 

现在为了检测closures应用程序事件,请考虑用户可以手动closures应用程序的方式。 在android中,按下后退button或主页button。 所以把一个事件关键监听器回到主页button并终止服务。