2010-03-07 56 views
6

在1.6 API中,有沒有一種方法可以確保在服務因內存壓力而被終止後調用服務的onStart()方法?從日誌看來,服務所屬的「進程」似乎重新啓動,但服務本身不是。我在onStart()方法中放置了一個Log.d()調用,並且沒有達到。「調度崩潰服務的重新啓動」,但沒有調用onStart()如下

爲了在內存壓力下測試我的服務,我從一項活動中產生了它,然後啓動Web瀏覽器並訪問Slashdot等Javascript重量級網站,直到我的服務被殺死。在logcat中寫道:

03-07 16:44:13.778: INFO/ActivityManager(52): Process com.kostmo.charbuilder.full (pid 2909) has died. 
03-07 16:44:13.778: WARN/ActivityManager(52): Scheduling restart of crashed service com.kostmo.charbuilder.full/com.kostmo.charbuilder.DownloadImagesService in 5000ms 
03-07 16:44:13.778: INFO/ActivityManager(52): Low Memory: No more background processes. 
03-07 16:44:13.778: ERROR/ActivityThread(52): Failed to find provider info for android.server.checkin 
03-07 16:44:13.778: WARN/Checkin(52): Can't log event SYSTEM_SERVICE_LOOPING: java.lang.IllegalArgumentException: Unknown URL content://android.server.checkin/events 
03-07 16:44:18.908: INFO/ActivityManager(52): Start proc com.kostmo.charbuilder.full for service com.kostmo.charbuilder.full/com.kostmo.charbuilder.DownloadImagesService: pid=3560 uid=10027 gids={3003, 1015} 
03-07 16:44:19.868: DEBUG/ddm-heap(3560): Got feature list request 
03-07 16:44:20.128: INFO/ActivityThread(3560): Publishing provider com.kostmo.charbuilder.full.provider.character: com.kostmo.charbuilder.provider.ImageFileContentProvider 
+2

'onCreate()'被調用,而不是'onStart()',因爲沒有人請求啓動或綁定。您需要關閉服務(或者在需要時啓動服務)。 – 2010-03-08 00:26:29

回答

6

所揭示的上述Chistopher的評論,即使日誌聲稱是「Scheduling restart of crashed service」,這實際上並不意味着onStart()方法將被調用。但是,確實會調用onCreate(),您的應用程序可以從那裏調用onStart()

相關問題