2011-05-09 12 views
1

我的android應用程序在第一次運行時啓動服務。該服務處理網絡連接。如何殺死我的應用程序而不會終止它的服務(調試)

如果設備沒有可用空間,我的應用程序可能會被終止,但服務將保持活動狀態(除非出現某種極端情況,我知道)。當應用程序將重新啓動時,它將需要根據服務狀態恢復它的狀態(沒有問題)。

以下是我的問題:如何殺死我的應用程序,但不是相關的服務?這只是爲了調試目的,我想測試狀態是否正確恢復。

當我嘗試用adb,ddms或高級任務殺手來殺死應用程序時,服務也被終止。

任何想法?

感謝,

代碼:我開始我的服務這樣的:

final Intent intent = new Intent(this, Service.class); 
mStartServiceResult = startService(intent); 
mIsBound = bindService(intent, mConnection, 0); 

和使用startForeground/setForeground防止我的服務被殺害。

回答

2

如果設備沒有可用空間,我的應用程序可能會被終止,但服務將保持活動狀態(除非出現某種極端情況,我知道)。

不。您的一些或全部活動可能會被銷燬,從而導致服務運行。或者您的流程可能會被終止,在這種情況下,您的服務也會關閉。

我該如何殺死我的應用程序,但沒有關聯的服務?

這是不可能的,對不起。

+1

但是,如果你想測試這種情況,你可以嘗試在2分鐘後讓一個定時器的活動調用finish()。假設不會停止你的服務,它可能有助於測試恢復情況。雖然它不會是完全一樣的東西。 – Torp 2011-05-09 11:36:56

+0

我遇到過一些奇怪的情況:我的主要活動被android殺死(即,onDestroy())沒有被調用,但服務仍然活着。你告訴我這種情況不可能嗎? – 2011-05-09 11:39:16

+0

@Torp:我會嘗試完成該應用。而不關閉服務器。謝謝:) – 2011-05-09 11:40:21

相關問題