mob*_*bob 6 android listener android-syncadapter
我记得读过同步适配器的广播接收器接口或同步进度事件的一些ResultReceiver.SyncAdapter模式中是否有内置的东西,或者是自己种植的?
Let*_*all 11
我刚从同步适配器实现了一个广播接收器,它就像发条一样!
使用Receiver设置为内部类并在onCreate中调用registerReceiver并在onDestroy中调用unregisterReceiver为我做了这个.
由于我有一个策略方法来生成和查询多个线程,所以我在SyncAdapter运行的开头就是:
Intent intent = new Intent();
intent.setAction(ACTION);
intent.putExtra(SYNCING_STATUS, RUNNING);
context.sendBroadcast(intent);
Run Code Online (Sandbox Code Playgroud)
在同步运行结束时,我有:
intent.putExtra(SYNCING_STATUS, STOPPING);
context.sendBroadcast(intent);
Run Code Online (Sandbox Code Playgroud)
在我的活动中,我声明:
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
}
}
}
Run Code Online (Sandbox Code Playgroud)
对于此方案,您无需将接收器添加到清单文件中.只是按原样使用!
什么有效:
在2010 Google IO会话中建议的方法,开发Android REST客户端应用程序是将列作为标记放入ContentProvider,以指示正在提取或放置记录等.这允许每行微调器(或其他视觉更改)放在你的用户界面中.您可以通过驱动ListView的自定义CursorAdapter来实现.您的ContentProvider可以根据需要更改标志.
什么不:
您还可以使用SyncStatusObserver - 这几乎没用,因为它会响应每次状态更改,而不仅仅是您的特定帐户/内容授权对,并且除了发生更改之外,实际上并没有告诉您任何其他内容.因此,您无法分辨正在同步的内容,并且无法区分"同步事件的开始"和"同步事件结束".一文不值.:P
| 归档时间: |
|
| 查看次数: |
5888 次 |
| 最近记录: |