救命!几乎在Android同步上

时间:2011-02-28 02:57:28

标签: android sync

我刚刚开始使用Android编程,几乎已经运行了SampleSync程序。有一个我无法理解的错误 - 在'AbstractThreadedSyncAdapter'模块中,就在它运行结束时。

在下面的代码段中,代码试图“释放”“提供者”。它尝试执行该行并始终抛出NullPointerException。

对我可以尝试的事情有任何想法 - 我非常接近! :)

约翰

SyncResult syncResult = new SyncResult();
ContentProviderClient provider = null;
try {
    provider = mContext.getContentResolver().acquireContentProviderClient(mAuthority);
    if (provider != null) {
        AbstractThreadedSyncAdapter.this.onPerformSync(mAccount, mExtras, mAuthority, provider, syncResult);
    } else {
        syncResult.databaseError = true;
    }
} finally {
    if (provider != null) {
        provider.release();
    }
    if (!isCanceled()) {
        mSyncContext.onFinished(syncResult);
    }
    // synchronize so that the assignment will be seen by other threads
    // that also synchronize accesses to mSyncThread
    synchronized (mSyncThreadLock) {
        mSyncThread = null;
    }
}

1 个答案:

答案 0 :(得分:0)

该行抛出NullPointerException是没有意义的,因为如果provider为null则不会执行它。例外必须在不同的行上。

c99 blog上有一个关于同步适配器的好教程,其描述比Google SampleSync示例好很多。我建议你给它一个阅读。