我記得從同步適配器或同步進度事件的某個ResultReceiver讀取有關廣播接收器接口的信息。 SyncAdapter模式中是否有內置內容,還是內置了?如何從Android SyncAdapter監聽進度?
回答
什麼工作:
的方法,2010年穀歌的IO會議建議,Developing Android REST client applications是將列到你的ContentProvider作爲標記來指示記錄被取出或放入或等這使得每行微調(或其他視覺變化)將放置在您的用戶界面中。您可以通過驅動ListView的自定義CursorAdapter來實現。您的ContentProvider正在掛鉤,以便根據需要更改標誌。
什麼不:
你也可以使用一個SyncStatusObserver - 這是幾乎無用的,因爲它響應狀態的每一個變化,不只是你的特定帳戶/ contentauthority對了,真不知道除了變化發生之外,你什麼都不是。因此,您無法分辨正在同步的內容,並且無法將「同步事件開始」與「同步事件結束」區分開來。一文不值。 :P
我去了pub-sub方法,我使用ResultReceiver從同步線程迴應UI。該服務在同步線程正在運行時添加和刪除訂閱者,並且如果有可用的話,它將廣播給活動的接收者。我正在考慮使用SyncStatusObserver來觸發UI的週期性同步已觸發 - 我會將其代入「開始 - 同步」訂閱狀態事件。 – mobibob 2011-03-15 18:21:19
我剛從一個同步適配器實現了一個廣播接收器,它的工作原理就像發條一樣!
使用接收器集作爲內部類,並調用onCreate中的registerReceiver和onDestroy中的unregisterReceiver爲我做了這個。
正如我有一個策略的方法,產卵和查詢多個線程,所有我在SyncAdapter運行的開頭是:
Intent intent = new Intent();
intent.setAction(ACTION);
intent.putExtra(SYNCING_STATUS, RUNNING);
context.sendBroadcast(intent);
,並在同步運行結束我有:
intent.putExtra(SYNCING_STATUS, STOPPING);
context.sendBroadcast(intent);
在我的活動,我宣佈:
onCreate(Bundle savedInstance){
super.onCreate(savedInstance);
SyncReceiver myReceiver = new SyncReceiver();
RegisterReceiver(myReceiver,ACTION);
}
onDestroy(){
super.onPause();
unRegisterReceiver(myReceiver);
}
public class SyncReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Bundle extras = intent.getExtras();
if (extras != null) {
//do something
}
}
}
對於這種情況,你不需要添加您的接收器到清單文件。按原樣使用!
郵件這很有趣,可能非常準確,但問題是關於監聽(監聽)的進度。問題在於我的同步適配器正在運行並且正在運行,看不到任何結果,所以我想向UI提供進度。 – mobibob 2014-04-19 23:11:04
我已經使用它來通過活動更新UI上的進度。由於我沒有使用同步適配器,因此我使用了不確定的進度。我會看看你的同步代碼,看看你如何使用它,而不是一個連續的非停止過程,例如使用線程組中的多個線程或Executor服務 – 2014-04-23 11:40:15
如果你正在尋找一種方法,這是最好的答案來操縱SyncAdapter的開始和結束。 – MurifoX 2014-12-02 16:54:42
- 1. 如何從春監聽
- 2. 進度對話框位置監聽器
- 3. Android監聽ACTION_DOCK_EVENT
- 4. Android監聽器中斷監聽器
- 5. 如何使用Android SyncAdapter?
- 6. Android SyncAdapter
- 7. Android-gps監聽器
- 8. Android:如何監聽滾動事件?
- 9. 如何使用Android LocationManager和監聽器
- 10. Android監聽器/回調如何?
- 11. 如何在Android中重用監聽器
- 12. Android - 如果視圖有點擊監聽器,如何檢測觸摸監聽器
- 13. 高度監聽器,jQuery
- 14. 角度事件監聽器
- 15. 監聽UDP和監聽
- 16. 如何從監聽到syslog插座
- 17. Android SyncAdapter用例
- 18. Android SyncAdapter回撥
- 19. Android SyncAdapter:重試
- 20. Android SyncAdapter頻率
- 21. 如何在android中從函數調用回監聽器?
- 22. 配置Oracle監聽器進行外部監聽
- 23. Android - 事件監聽器
- 24. Android WiFi狀態監聽器
- 25. android imageview onclick監聽器
- 26. 的Android監聽應用
- 27. 在Android的GIF監聽器
- 28. Android TV,遙控監聽器
- 29. 更改Android語言監聽
- 30. Android選擇監聽器
我已經使用它來通過活動更新UI上的進度。由於我沒有使用同步適配器,因此我使用了不確定的進度。我會查看你的同步代碼,看看你如何使用它,而不是一個連續的非停止過程,例如使用線程組或Executor服務中的多個線程。您也可以每隔幾秒鐘/分鐘向接收器發送額外的參數,例如'code' intent.putExtra(SYNCING_STATUS_TIME,30); 'code' – 2014-04-23 11:46:33