2011-08-26 91 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。

相關問題