我可以在以下位置看到活动/待处理同步:来自主进程的同步进程吗?

时间:2017-09-14 16:27:22

标签: android android-syncadapter

是否可以确定(在应用程序启动的过程中)同步状态为SyncAdapter在单独的:sync进程中运行?我一直在使用下面的标准ContentResolver方法,除非下面的代码在与trueSyncAdapter相同的过程中执行,否则无法让任何方法返回:sync 1}}过程)。

val currentSyncs = ContentResolver.getCurrentSyncs().any { it.authority == <authority> }
val syncPending = ContentResolver.isSyncPending(account, <authority>)
val syncActive = ContentResolver.isSyncActive(account, <authority>)

这些同步框架文档似乎都没有表明在跨进程场景中这是不可能的,所以我有点难过,但它似乎是最可能的解释。

1 个答案:

答案 0 :(得分:0)

我试图找到一种从ContentResolver获取同步状态信息的可靠方法,实在是太不走运了。

对我有用:使用意图将信息从SyncAdapter广播到另一个组件:

// when sync started
Intent i = new Intent();
i.setAction(MyIntents.INTENT_ACTION_SYNC_STARTED);
context.sendBroadcast(i);

// when sync completed
Intent i = new Intent();
i.setAction(MyIntents.INTENT_ACTION_SYNC_DONE);
context.sendBroadcast(i);

然后收到意图:

registerReceiver(new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {
        Toast.makeText(context, 'Sync started', Toast.LENGTH_LONG).show();
    }
}, new IntentFilter(MyIntents.INTENT_ACTION_SYNC_STARTED));