2011-08-26 117 views
11

在我的应用程序中,我使用服务与我们的服务器进行通信。该服务产生多个消息队列线程来处理具有不同优先级的任务。Android服务onCreate被调用多次,而无需调用onDestroy

该模型已使用约一年没有大问题。但是,最近我发现有一段时间我的服务类的onCreate被多次调用。在两个onCreate调用之间永远不会调用onDestroy。因此,我没有机会杀死现有的线程。一旦发生这种情况,服务里面就有重复的线程。

我唯一改变的是运行服务,因为前台服务是用户登录应用程序。我想知道前台服务是否会导致问题。

任何想法?

回答

0

我在处理蓝牙服务时遇到了完全相同的问题(问题出现在开发过程中)。当我断开设备并杀死ADB时,它不再发生,并且只创建一次。我认为这是一些错误,因为它不时发生。但也许你有一个稍微不同的问题...

12

我有同样的问题,当我的服务使用相同的过程与活动(默认)。但是当我使我的服务使用另一个过程时没有更多的问题。我编辑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信息。

+0

老兄!你太棒了!你解决了我的问题 – dd619

+0

无法在Android 4.2.2上工作,你有什么想法吗? – Wangchao0721

+1

不适用于我:( – MobileMon

0

这可能对某人有用。 当我在其中一个活动的onSaveInstanceState方法中通过绑定存储地图时,我遇到了同样的问题。我相信,因为地图中包含了对应用程序其他部分中使用的对象的引用(其中一个是我的服务),所以每次我离开所述活动时,我的服务都会重新开始。

我猜这是android操作系统shenanigans。

相关问题