2010-11-10 229 views
1

我有一個Android服務負責在某些時間點發射通知。我爲此使用了一個android.OS.CountdownTimer。活動創建並啓動服務。如果手機處於鎖定狀態,則會顯示在我們說1分鐘內的通知。更晚的通知從不顯示。當活動處於暫停狀態時,該服務與活動無關。Android服務意外死亡

只要手機沒有鎖定生成通知,即使該活動已停止並從服務中解除綁定。

在我看來,該服務被停止/殺死。當我使應用程序可調試並在目標上進行調試時,它可以正常工作,也可以在活動停止並且服務未被綁定時使用。

該應用程序是爲v1.5開發的,並在2.2版Galaxy S上運行。如下圖所示

serviceIntent = new Intent().setAction("com.mytest.MyService"); 
startService(serviceIntent); 
bindService(new Intent(context, 
     MyService.class), mConnection, 0 /*Context.BIND_AUTO_CREATE*/); 

回答

1

我有一個Android服務,是負責在特定時間點發射通知

服務已啓動。我爲此使用了一個android.OS.CountdownTimer。

請不要這樣做。請使用AlarmManagerIntentService,所以您沒有一直運行的服務。用戶將通過設置應用程序中的任務殺手或管理服務屏幕殺死您的服務。 Android將停止您的服務。根據用戶和平臺的願望,您可以更好地服務於建築(AlarmManager/IntentService)。

+0

謝謝!確實,使用AlarmManager解決了這個問題。我仍然使用AlarmManager啓動(如果終止)的普通服務(不是intentservice),並且意圖作爲參數與服務的OnStart()函數一起傳遞。 – Tin 2010-11-11 16:23:42