2014-09-27 212 views
0

我有一個後臺服務方法,經常調用更新的應用程序數據。 我有一個活動,其中根據用戶導航顯示多個片段。 我剛開始服務時,我的儀表板活動啓動應用程序,我顯示的片段。現在我只想停止服務,當用戶從app.I退出代碼停止服務onDestroy()我的活動,但它永遠不會當用戶按下android手機主頁按鈕並退出應用程序時被調用。當後臺應用程序停止BackgroundService

低於我的服務代碼 -

@Override 
public int onStartCommand(Intent intent, int flags, int startId) { 
    callAsynchronousTask(); 
    return Service.START_NOT_STICKY; 
} 
+0

您無法攔截主頁按鈕,但可以確定是否按下主頁按鈕。我很久以前就回答過,只是搜索攔截Home Button按鈕。 – 2014-09-27 10:03:28

回答

1

onDestroy()當您關閉應用程序或關閉您的活動只會調用。當你按回家鍵時,它不會呼叫。如果您仍然希望服務在用戶按Home按鈕時停止,那麼您可以覆蓋onPause()並停止此服務,但是當您打開另一個活動時服務將再次停止。

+0

是的,我已經嘗試在兩個面臨同樣的問題,任何其他方式,你可以請建議。 – Ravi 2014-09-27 08:31:45

+1

然後你必須打一個標誌,當你在家庭活動時應該是真的,並且在真實的情況下,停止服務。 – 2014-09-27 08:42:08

+0

謝謝,你救了我的命。 – Ravi 2014-09-27 08:46:53

1

Activity當您按下Home鍵沒有被破壞掉了!嘗試在方法中或在最適合您需求的活動生命週期的其他某個點上實現您的功能!

http://developer.android.com/training/basics/activity-lifecycle/index.html

+0

我只是嘗試onPause,但如果當屏幕鎖定或當應用程序導航到下一個活動,然後在停止被稱爲和服務停止。 – Ravi 2014-09-27 08:30:00

+0

這就是你要求的。我錯了嗎? – Pavlos 2014-09-27 08:32:57

+0

我看到Pavlos的答案正確,根據你的要求,最終的答案是,你必須看到鏈接並瞭解活動的生命週期。 – Yazan 2014-09-27 08:38:12

相關問題