我有一個應用程序下載一個時間表並保存它,它也定期下載這個時間表的變化。我目前正在使用單身人士,但從設計的角度來看,我覺得這很醜陋。由於下載,我需要一個集中式系統來最大限度地減少網絡使用。如何從應用更新小部件?
在當前形勢下,每個需要更新從單首先獲得此單的一個實例,然後提供了當需要更新被稱爲特定方法的接口類。目前單身人士處理工作線程中的所有下載。通常我會使用從Activity中調用的AsyncTask,但是因爲我必須將結果發送到Widget,所以我看不到這個工作。
替代是使用服務。我只是簡單地將Widget和活動綁定到它。在這種情況下,問題是我無法從BroadcastReceiver(AppWidgetProvider)綁定。問題是我無法定期更新我的小部件。我的問題是:我如何(或:我可以)設計我的應用程序,以便我可以從服務更新我的小部件(爲了擺脫單身人士)還是有更好的方法(也許BroadcastReceivers)?
下載沒有在特定時間執行,因此,我將使用一個處理器來代替AlarmManager。否則:謝謝,它澄清了分配。 – Boude 2012-01-08 14:28:11
@Boude:「下載並沒有在特定時間執行,因此,我將使用一個處理器來代替AlarmManager」 - 一旦你的進程被終止,你的'Handler'消失。 'AlarmManager'是一個更好的定期下載解決方案,如果這些下載應該發生,即使您的UI不在前臺。 – CommonsWare 2012-01-08 14:58:57
當小部件可見時,必須執行下載。只有當活動和小部件都不可見時才需要下載。我想我會在測試我的alpha時嘗試兩者,並根據一些用戶體驗做出我的決定。我會非常仔細地考慮你的觀點,謝謝。 – Boude 2012-01-08 19:42:19