我正在開發一個android應用程序來顯示notifications.How我可以在有限的時間間隔(例如10分鐘的間隔)輪詢一個web服務來檢查任何更新並顯示爲android通知面板中的通知。如何從android有限的時間間隔輪詢web服務?
回答
您不需要需要服務。我感覺像一個破碎的記錄。在這種使用情況下,95%的服務都會在那裏無所事事,但仍然使用系統資源,更重要的是耗盡電池。
請參閱使用來自AlarmManager報警類似的問題我的回答:
Running task periodicaly(once a day/once a week)
編輯:
看從Android開發網站如何實現通知本教程: http://developer.android.com/guide/topics/ui/notifiers/notifications.html
使用計時器,您可以在有限的時間間隔後調用該Web服務的e.x
Timer waitingTimer = new Timer();
waitingTimer.schedule(new TimerTask()
{
@Override
public void run()
{
runOnUiThread(new Runnable()
{
public void run()
{
// code to hit xml after time interval
}
});
}
},0,20000); // mention time interval after which your xml will be hit.
這裏20000表示每隔20秒後,它會被擊中。
一個線程絕對不是這個在android中去的方式。它會坐在那裏無所事事,那不好。使用警報管理器而不是 – njzk2 2012-02-10 11:48:04
還有Google提供的Cloud to Device Messaging服務C2DM。您可以使用此服務將消息推送到所有註冊的移動設備。這不僅可以提高性能,還可以確保在連續輪詢服務器時不會耗盡電池電量。
對於您的方案,您可以在java類中編寫定期輪詢Web服務並使用C2DM服務將消息推送到可以顯示爲通知的Android手機。看看沃格拉在link上的這篇教程。或者,如果您只是爲了獲取更新的細節而使用Web服務,那麼您可以避免使用Web服務,並在有變更時直接調用C2DM Push服務將消息推送到所有註冊的設備。
希望這有助於。 :)
對於未來的搜索者:C2DM已被棄用並被GCM取代:http://developer.android.com/guide/google/gcm/index.html;遷移指南:http://developer.android.com/guide/google/gcm/c2dm.html – paul 2012-08-21 21:01:26
有關未來的進一步參考資料,GCM現在是FCM(Firebase雲消息傳遞)。以下是遷移指南:https://developers.google.com/cloud-messaging/android/android-migrate-fcm – 2017-10-19 13:43:08
- 1. Android LocationListener輪詢間隔
- 2. Kafka Connect SourceTask的輪詢時間間隔
- 3. DBMS_ALERT輪詢間隔
- 4. DWR輪詢間隔
- 5. 在Web應用程序中每隔一定的時間間隔輪詢
- 6. 更改輪詢間隔2010
- 7. 併發AJAX間隔輪詢
- 8. Spring MDP:輪詢間隔?
- 9. 從服務啓動一項活動(更改時間間隔) - Android
- 10. javascript和revel之間的長時間輪詢golang服務器
- 11. 時間間隔任務服務
- 12. 輪詢的Java Web服務
- 13. Android常規GPS輪詢服務,最大限度延長電池使用時間
- 14. 用不同的時間間隔呼叫Web服務?
- 15. Android - 從另一個服務以固定時間間隔調用系統服務
- 16. 如何在服務中輪詢當前時間?
- 17. 間隔(iOS 7)本地通知輪詢服務器
- 18. 如何解決從android手機發送數據到web服務器的特定時間間隔?
- 19. 給定時間間隔內的JavaScript輪詢
- 20. Linux上的USB HID設備輪詢時間間隔
- 21. Dart服務器檢查時間間隔
- 22. 理想輪詢機制/間隔爲Android客戶端/服務器應用程序
- 23. 位置服務的更新時間間隔Android
- 24. 以設定的間隔Python輪詢MSSQL
- 25. 時間受限服務
- 26. 改變一個android服務在特定時間間隔執行
- 27. Unix時間戳Web服務
- 28. Web服務調用時間
- 29. AngularJs $服務間隔
- 30. 的Windows服務沒有啓動,根據間隔時間
是的。這是正確的方法。 – njzk2 2012-02-10 11:48:47
格雷厄姆,所以會有一個.apk專用的apk只是爲了顯示通知? – 2012-02-10 12:16:33
您可以將所有代碼放入單個項目並作爲單個APK進行部署。 – 2012-02-10 12:38:32