Android服务onCreate被调用多次,而无需调用onDestroy
问题描述:
在我的应用程序中,我使用服务与我们的服务器进行通信。该服务产生多个消息队列线程来处理具有不同优先级的任务。Android服务onCreate被调用多次,而无需调用onDestroy
该模型已使用约一年没有大问题。但是,最近我发现有一段时间我的服务类的onCreate
被多次调用。在两个onCreate
调用之间永远不会调用onDestroy
。因此,我没有机会杀死现有的线程。一旦发生这种情况,服务里面就有重复的线程。
我唯一改变的是运行服务,因为前台服务是用户登录应用程序。我想知道前台服务是否会导致问题。
任何想法?
答
我在处理蓝牙服务时遇到了完全相同的问题(问题出现在开发过程中)。当我断开设备并杀死ADB时,它不再发生,并且只创建一次。我认为这是一些错误,因为它不时发生。但也许你有一个稍微不同的问题...
答
我有同样的问题,当我的服务使用相同的过程与活动(默认)。但是当我使我的服务使用另一个过程时没有更多的问题。我编辑AndroidManifest.xml中像下面......(加安卓过程属性)
<service android:name="kr.co.pkbio.binoo.CacheFileManagerService" android:process=":kr.co.pkbio.binoo.service"/>
<service android:name="kr.co.pkbio.binoo.ActivityStackManagerService" android:process=":kr.co.pkbio.binoo.service"/>
看到http://developer.android.com/guide/topics/manifest/service-element.html信息。
答
这可能对某人有用。 当我在其中一个活动的onSaveInstanceState方法中通过绑定存储地图时,我遇到了同样的问题。我相信,因为地图中包含了对应用程序其他部分中使用的对象的引用(其中一个是我的服务),所以每次我离开所述活动时,我的服务都会重新开始。
我猜这是android操作系统shenanigans。
老兄!你太棒了!你解决了我的问题 – dd619
无法在Android 4.2.2上工作,你有什么想法吗? – Wangchao0721
不适用于我:( – MobileMon