2012-07-29 41 views
1

我已經創建了一個應用程序,其服務作爲我的應用程序的後臺線程運行。 由於內存不足,Andrdoid不時殺死一些應用程序。 其中一個應用程序,它已被殺害的,是我的應用程序:搜索開始的方法,如果Android啓動我的proc

07-29 14:48:35.140 I/ActivityManager(145):進程test.myApp(PID 4847)已經死亡。

07-29 14:48:35.140 W/ActivityManager(145):48::在19600ms

07-29 14墜毀服務test.myApp/.hilfsklassen.AutoSyncService的調度重新啓動35.140 I /窗口管理( 145):WIN DEATH:窗口{4071e300 test.myApp/test.myApp.Login paused = false}

07-29 14:48:35.150 I/WindowManager(145):WIN DEATH:Window {407def28 test.myApp /test.myApp.Startseite paused = false}

Android啓動了我的應用程序我秒後:

07-29 14:48:54.750 I/ActivityManager(145):啓動PROC test.myApp服務test.myApp/.hilfsklassen.AutoSyncService:PID = 7299 UID = 10057個導報= {} 3003

但有一個問題:

我的服務需要從test.myApp一些數據來運行。
所以我知道如果Android啓動我的應用程序,我的開始活動將被調用什麼方法?

我嘗試了onResume(),但這隻適用於,如果我的應用程序有focuse(前景)。如果Android啓動我的應用程序,它將在後臺運行。所以我認爲它必須是onRestart(),但是這個方法沒有被調用。 我必須在此方法中啓動我的服務,以便設置運行服務所需的一些變量!

克里斯

回答

1

Android的運行時會殺後臺服務無預警當內存變低。如果服務的onStartComand()方法返回START_STICKYSTART_FLAG_REDELIVERY,它將在稍後重新啓動。在後一種情況下,啓動服務的原始意圖與所有額外數據一起重新發送。該活動僅在用戶手動啓動時纔會啓動。

另一種方式是存儲數據的地方(例如,在sharedPreferences)和檢索服務中的數據。這種方式使服務獨立於活動。希望有所幫助。

相關問題