我正在運行Service
使用AlarmManager
。 Service
運行正常,我正在手動停止Service
(單擊Button
),但我需要在某個時間(可能是10秒)後停止Service
。我可以使用this.stopSelf();
,但在特定時間後如何撥打this.stopSelf();
?安卓服務需要在某段時間後停止
回答
可能是您應該考慮使用IntentService?當沒有工作時它會停止,所以你不需要自己管理它的狀態。
使用postDelayed方法Handler
內服務完成它。例如:
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
stopSelf();
}
}, 10000); //will stop service after 10 seconds
- 創建一個
Intent
開始Service
。將action
設置爲自定義操作,例如"com.yourapp.action.stopservice"
。 - 使用
AlarmManager
,啓動Intent
以啓動Service
(無論您現在在做什麼)。如果它已經在運行,它將被傳送到Service
的onStartCommand()
。 - 在
onStartCommand()
,檢查action
傳入Intent
。如果action.equals("com.yourapp.action.stopservice")
,請使用this.stopSelf()
停止Service
。
謝謝aswin kumar.But我不明白你的做法。我只是需要停止服務一段時間後。有時我會打電話給'this.stopSelf()'。我想從'onCreate()'調用。 – Kabir 2012-07-16 12:16:28
服務啓動後,onCreate將不會被調用。所有後續的調用將被傳遞給onStartCommand()。我建議你經歷一個服務的生命週期。 – 2012-07-16 12:43:36
之間,由[Waqas](http://stackoverflow.com/users/966550/waqas)回答是一個更好的解決方案 – 2012-07-16 12:43:56
這可以很容易地使用timer
和timerTask
一起完成。
我仍然不知道爲什麼沒有建議這個答案,而是提供的答案不提供直接和簡單的解決方案。
在服務子類,在全球創建這些(你可以創建他們不是全局的,但你可能會碰到的問題)
//TimerTask that will cause the run() runnable to happen.
TimerTask myTask = new TimerTask()
{
public void run()
{
stopSelf();
}
};
//Timer that will make the runnable run.
Timer myTimer = new Timer();
//the amount of time after which you want to stop the service
private final long INTERVAL = 5000; // I choose 5 seconds
現在裏面你的服務的onCreate()
,請執行下列操作:
myTimer.schedule(myTask, INTERVAL);
這應該在5秒後停止服務。
- 1. 安卓後臺服務在一段時間後停止
- 2. 服務在某段時間後停止工作。需要繼續工作
- 3. 安卓:後臺服務不會停止
- 4. 停止安卓服務
- 5. 時間後停止服務
- 6. 安卓:讓服務不停止的
- 7. 安卓服務不會停止
- 8. Android服務在一段時間後停止運行請幫助
- 9. 泊塢窗服務在一段時間後停止通信
- 10. Python TCP服務器在一段時間後停止響應
- 11. NodeJS服務器在一段時間後停止監聽端口
- 12. 安卓定時器在服務 - 如何停止和啓動
- 13. 安卓相機自動對焦在一段時間後停止工作
- 14. LocationListener在安卓服務的某個時間不提供更新
- 15. 停止應用程序運行一段時間後Android服務停止
- 16. node.js服務器停止工作一段時間後winows
- 17. 安卓設備睡眠時Android服務停止工作
- 18. 安卓服務啓動時開機得到強制停止
- 19. 在某段時間後中止程序
- 20. 在某段時間後停止執行程序
- 21. 在一段時間後停止線程
- 22. AsyncTask在一段時間後停止
- 23. iPhone後臺任務在某個時間點停止運行
- 24. 安卓:在停止服務奇怪的問題
- 25. 如何在不需要時在夜間/白天時間暫停或停止Azure APP服務?
- 26. mssql_connect停止工作一段時間後
- 27. 一段時間後聲音停止 - Android
- 28. 安卓計時器服務
- 29. Android連接服務器,如何在一段時間後停止插座?
- 30. Android工作室我的服務在一段時間後停止工作
非常感謝Mr.Andrei Mankevich。 – Kabir 2012-07-16 12:46:53