相关疑难解决方法(0)

如何知道同步完成的时间?

我已经实现了一个同步适配器,我想在我的活动中完成回调.我尝试过使用ContentResolver.addStatusChangeListener,但是当同步处于暂挂/活动状态时,我只会收到回调.以下是我的活动中的一些相关代码:

@Override
protected void onResume() {
    super.onResume();
    final int mask = ContentResolver.SYNC_OBSERVER_TYPE_ACTIVE | ContentResolver.SYNC_OBSERVER_TYPE_PENDING;
    syncObserverHandle = ContentResolver.addStatusChangeListener(mask, syncStatusObserver);
}

@Override
protected void onPause() {
    super.onPause();
    if (syncObserverHandle != null) {
        ContentResolver.removeStatusChangeListener(syncObserverHandle);
        syncObserverHandle = null;
    }
}

private SyncStatusObserver syncStatusObserver = new SyncStatusObserver() {

    @Override
    public void onStatusChanged(int which) {
        AccountManager am = AccountManager.get(TodosActivity.this);
        Account a = am.getAccountsByType(Const.ACCOUNT_TYPE)[0];

        Log.d(Const.TAG, "Sync status changed: " + which);

        if (!ContentResolver.isSyncActive(a, DataProvider.AUTHORITY) &&
                !ContentResolver.isSyncPending(a, DataProvider.AUTHORITY)) {
            Log.d(Const.TAG, "Sync finished, should refresh nao!!");
        } …
Run Code Online (Sandbox Code Playgroud)

android sync callback

31
推荐指数
3
解决办法
1万
查看次数

如何从Android SyncAdapter收听进度?

我记得读过同步适配器的广播接收器接口或同步进度事件的一些ResultReceiver.SyncAdapter模式中是否有内置的东西,或者是自己种植的?

android listener android-syncadapter

6
推荐指数
2
解决办法
5888
查看次数

有没有人在Android SyncObserver上实现(或获得更多信息)

我正在开发一个Android应用程序,它与服务器执行后台同步(使用SyncAdapter和身份验证等).

启动前台应用程序(使用UI)时,可能正在进行后台同步,或者可选择通过UI按钮启动后台同步.

我想要一种"插入"正在进行的后台同步(无论是由系统启动,还是定期同步设置或UI)的方法,并显示它在前台活动中的进度.

ContentResolver文档(http://developer.android.com/reference/android/content/ContentResolver.html)提到了一个神秘的"SyncObserver",它没有链接到javadoc,也没有记录(我能找到).

还有一些其他页面提到它(http://www.chinaup.org/docs/migrating/m5-0.9/changes/android.content.ContentResolver.html)但我无法找到更多相关信息.

有人实施过这种野兽吗?

如果没有,是否有人有关于跟踪前台活动中后台同步进度的示例代码或建议?

user-interface android synchronization sync android-syncadapter

5
推荐指数
2
解决办法
2276
查看次数

如何向Android SyncManager发送sync-complete信号?

我在我的SyncAdapter中使用了cancelRequest(),就在它退出线程之前,但我决定只打算用另一个想要取消正在进行同步的实体(UI)(花太长时间,哎呀,等等.)

现在我的同步认为总有一个待处理请求 - 我用它来忽略新请求.

我要做的另一件事是Service中的侦听器线程正在侦听ContactsContract.AUTHORITY的更改,以便它可以启动我的聚合的同步.

更新:此侦听器线程正在泄漏.当我完成它时,我发出了一个.stop(),然而,我认为有一个处理程序可以保持活动并使服务停止运行.

我想将SyncResults发送到一些实体(即SyncManager),它跟踪这些事情以进行待处理,回收等.

我错过了什么?

android android-syncadapter

5
推荐指数
2
解决办法
3120
查看次数