在我的应用程序中,我使用服务与我们的服务器进行通信。该服务生成多个消息队列线程来处理具有不同优先级的任务。
这个模型已经使用了大约一年没有大问题。然而,最近,我找到了一些时间 onCreate
我的服务类被多次调用。 onDestroy
从来没有在两者之间被称为 onCreate
调用。因此,我没有机会杀死现有的线程。一旦发生此行为,服务内部就会出现重复的线程。
我唯一改变的是运行服务,因为前台服务是用户登录应用程序。我想知道前台服务是否会导致问题。
有任何想法吗?
在我的应用程序中,我使用服务与我们的服务器进行通信。该服务生成多个消息队列线程来处理具有不同优先级的任务。
这个模型已经使用了大约一年没有大问题。然而,最近,我找到了一些时间 onCreate
我的服务类被多次调用。 onDestroy
从来没有在两者之间被称为 onCreate
调用。因此,我没有机会杀死现有的线程。一旦发生此行为,服务内部就会出现重复的线程。
我唯一改变的是运行服务,因为前台服务是用户登录应用程序。我想知道前台服务是否会导致问题。
有任何想法吗?
当我的服务使用与活动相同的过程(默认)时,我遇到了同样的问题。但当我使用另一个进程时,没有更多问题。我编辑了我的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 供参考。
当我的服务使用与活动相同的过程(默认)时,我遇到了同样的问题。但当我使用另一个进程时,没有更多问题。我编辑了我的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 供参考。
当我处理蓝牙服务时(在开发过程中出现问题),我遇到了完全相同的问题。当我断开设备并杀死ADB时,它没有再次发生,onCreate只被调用一次。我认为这是一些错误,因为它不时发生。但也许你的问题略有不同......
这可能对某人有用。 在我的一个活动中,通过onSaveInstanceState方法中的包存储地图时,我遇到了同样的问题。我相信因为地图包含对应用程序其他部分中使用的对象的引用(其中一个是我的服务),每次我离开所述活动时,我的服务将重新开始。
我猜这是android OS恶作剧。