android - 如何使用 Drive Api.OnSync 完成回调(Android Google Play 服务)

标签 android google-play-services google-drive-android-api

Android 的开发人员文档指出,您可以使用 DriveApi.OnSyncFinishCallback 来(大概)处理您的本地内容和您的 google 云端硬盘帐户之间的同步何时完成。通常,此类同步会自动发生,由 Google Play 服务透明地管理,但显然您可以通过以下调用强制同步请求:

Drive.DriveApi.requestSync(mGoogleApiClient);

我说“显然”是因为这个功能的官方文档很差,至少(https://developer.android.com/reference/com/google/android/gms/drive/DriveApi.html#requestSync(com.google.android.gms.common.api.GoogleApiClient))

无论如何,可以使用以下代码实例化 OnSyncFinishCallback:

OnSyncFinishCallback myCallback = new OnSyncFinishCallback(){

    @Override
    public void onSyncFinish(com.google.android.gms.common.api.Status arg0) {
        // TODO Auto-generated method stub

    }

};

我的问题是我在哪里以及如何注册这个回调以便在同步完成时自动调用它? requestSync 调用返回一个 PendingResult,它只有一个 setResultCallback(ResultCallback arg0) 方法,不能用于 OnSyncFinishCallback。

最佳答案

我必须说 requestSync 对我来说工作得很好(2015 年 1 月,使用 Google Play 服务 6.5.87)。我在一台设备上备份我的数据库并在另一台设备上恢复它,但在恢复之前我以这种方式调用 requestSync:

    Drive.DriveApi.requestSync(mGoogleApiClient)
            .setResultCallback(new ResultCallback<Status>() {
                @Override
                public void onResult(Status result) {
                    if (!result.isSuccess()) {
                        // Sync not ok
                        showMessage("Sync error");
                        return;
                    }
                    // Sync ok. I can safely do a query to get
                    // the database file and restore it.
                    ...

顺便说一下,我使用的是根文件夹,而不是应用程序文件夹。从不同设备安装/卸载应用程序时,应用程序文件夹可能会出现其他同步问题,因此目前我更愿意坚持使用根文件夹。

关于android - 如何使用 Drive Api.OnSync 完成回调(Android Google Play 服务),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23939356/

相关文章:

java - 使用 TreeTranslator 重命名不适用于 Kotlin 的函数

android - 无法在 Debug模式下登录 Google Play 服务

android - java.lang.RuntimeException : Unable to instantiate receiver (Didn't find class) 错误

android - 当我同步我的项目然后告诉我(任务 ':app:processDebugGoogleServices' 执行失败)但我添加了 google-services.json

android - 创建firebase时错误构建gradle

android - Google Drive Android API 未激活

android - Google Drive REST API 是否仍需要 GET_ACCOUNTS 权限?

google-drive-api - Google Drive SDK - 驱动器范围

Android 源代码不工作,通过 glReadPixels 读取帧缓冲区

android - 如何更改时间选择器样式?