我记得从同步适配器或同步进度事件的某个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 SyncAdapter?
- 5. Android SyncAdapter
- 6. Android监听器/回调如何?
- 7. Android:如何监听滚动事件?
- 8. 高度监听器,jQuery
- 9. 监听UDP和监听
- 10. 如何从监听到syslog插座
- 11. Android SyncAdapter:重试
- 12. Android SyncAdapter用例
- 13. Android SyncAdapter回拨
- 14. 如何在android中从函数调用回监听器?
- 15. 配置Oracle监听器进行外部监听
- 16. Android Mediaplayer错误监听器
- 17. Android WebView下载监听器
- 18. 网络监听器Android
- 19. Android GPS位置监听器
- 20. Android WiFi状态监听器
- 21. Android菜单监听器
- 22. Android AudioManager事件监听器?
- 23. 的Android onTouch监听事件
- 24. 的Android动画监听
- 25. 在Android中监听活动
- 26. Android Wifi监听器策略
- 27. 更改Android语言监听
- 28. Android EditText监听器输入
- 29. Android,事件监听器?
- 30. Android的全球监听器
我已经使用它来通过活动更新UI上的进度。由于我没有使用同步适配器,因此我使用了不确定的进度。我会查看你的同步代码,看看你如何使用它,而不是一个连续的非停止过程,例如使用线程组或Executor服务中的多个线程。您也可以每隔几秒钟/分钟向接收器发送额外的参数,例如'code' intent.putExtra(SYNCING_STATUS_TIME,30); 'code' – 2014-04-23 11:46:33