2014-06-30 58 views
2

我與服務在我的Android應用程序,但我一直在使用,當我將結束我的應用服務從多任務小問題的工作,然後從該應用程序突然背景服務停止即使我不從日誌服務的Destroy ...服務時破壞清晰的多任務堆棧的Android

我認爲它是因爲android摧毀應用程序的所有資源和我的服務也被殺死。

一段時間後,服務autometically statring ...我不知道這個原因..

有沒有什麼解決方案,使時間可持續經營我服務?

在此先感謝。

回答

1

我假設多任務應用程序中的近距離應用程序等於查殺應用程序進程,其中大多數進程/任務應用程序都是這樣做的。

我還假設您知道您的代碼不包含某種類型的定期醒來重新啓動您的服務的Alarm

如果描述的行爲是一致的,並且在 應用程序關閉後的幾秒鐘內發生,我們也可以排除一個廣播接收器,它會喚醒 以啓動線程。

這給我們留下了最後一個解釋:你的進程被宣佈爲sticky

class MyService extends Service { 

    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 
     return START_STICKY; // declare service to be sticky 
    } 

} 

粘滯服務是要求Android作爲長猝死後重新啓動它, 作爲系統服務資源允許這樣的重新啓動。

你所描述的完全符合粘性行爲。去除粘滯標誌 應該可以解決你的問題。

+0

好的感謝回答..首先讓我知道粘滯服務,我會再次回到我的問題.. – WonderSoftwares

+0

這些所有返回值給出的選項重新啓動或不服務後殺死......但我的問題其實我不想看到服務被殺死..... – WonderSoftwares