我想每15分鐘啓動一次服務。大多數情況下,它會在30秒內退出,但服務時間會超過15分鐘。如果之前的服務呼叫仍在運行,我認爲對於警報管理員來說,啓動服務並不會有好處。我正在考慮在onStartCommand中設置一個標誌,以便在服務運行時不做任何事情就直接返回。但我不確定這是否是處理它的最好方法,因爲onStartCommand返回一個int值,我不知道系統需要什麼值。有沒有最好的方法來做到這一點?Android:使用AlarmManager重複呼叫有時持續時間超過重複時間間隔的服務
0
A
回答
1
但我從CommonsWare聽到這樣的:「不,這不會創建一個新的服務。如果該服務已在運行,它將與onStartCommand()再次被調用,爲客戶提供新的意圖,但第二個。不會創建副本。「
是啊,這CommonsWare傢伙,他肯定不會寫了很多... :-)
我不認爲這將是很好的alarmmanager啓動,如果前一個服務的服務電話仍在運行。
如果您使用的是IntentService
,這不成問題。來自第二個報警的命令將被排隊,等待onHandleIntent()
從第一個報警結束。
如果您不使用IntentService
,您需要在onStartCommand()
中擁有智能來確定您自己的線程仍在拖動中,因此您希望跳過該命令。
但我不確定這是否是最好的方式來處理它,因爲onStartCommand返回一個int值,我不知道系統需要什麼值。
這實際上與您的問題沒有任何關係。只需返回super.onStartCommand()
,或者您當前的onStartCommand()
方法正在返回。
但是如果我不希望服務再次啓動,直到下一次它應該被調用?
嗯,你可以更換一次性報警的報警重複(使用set()
),然後設置下一個報警從先前報警結束了工作的一部分。
+1
謝謝。從馬的嘴裏拿出來很好(我有兩本書)! –
相關問題
- 1. AlarmManager即使沒有時間也會重複呼叫
- 2. 持續時間和重複
- 3. 的Android Alarmmanager不長的時間間隔重複
- 4. Android AlarmManager setRepeating不會長時間間隔重複
- 5. 重複在設定的時間間隔
- 6. 重複以1秒間隔的時間
- 7. 持續時間後的呼叫超時功能Callkit
- 8. 特定時間間隔重複報警
- 9. 自定義UILocalNotification重複時間間隔
- 10. 時間間隔重複功能?
- 11. ISO 8601重複時間間隔
- 12. 用不同的時間間隔呼叫Web服務?
- 13. Android:重置AlarmManager中的重複呼叫服務
- 14. CXF呼叫持續時間記錄
- 15. 設置服務重複時間
- 16. 讀取具有時間間隔/持續時間的.TDMS文件
- 17. 特定時間間隔內的重複性任務?
- 18. 以固定的時間間隔重複執行任務
- 19. 使用concatMap時重複呼叫
- 20. Android重複鬧鈴最小時間間隔?
- 21. 在按鈕點擊時連續重複CSS過渡/動畫持續時間?
- 22. 的持續時間或間隔
- 23. NSTimer不重複計時器 - 檢索時間間隔
- 24. 如何限制時間AlarmManager重複的Android
- 25. 如何使NSURLSession以一定的時間間隔重複?
- 26. 時間間隔重疊 - teradata
- 27. setTimeout被重複調用的時間比3秒的間隔後
- 28. 時間片持續時間
- 29. 用於定義可重複時間間隔的表達式
- 30. 設置重複AlarmManager在指定的時間內沒有響應
但是我聽到(http://stackoverflow.com/questions/13124115/what-happens-if-i-start-an-android-service-which-is-already-running)CommonsWare這個:「不,它不會創建一個新服務,如果該服務已經運行,它將再次用onStartCommand()來調用,以提供新的Intent,但不會創建第二個副本。「新意圖會做什麼? –
我明白了。但是如果我不希望服務在下次應該被調用時再次啓動? –