Android 未调用SyncAdapter onPerformSync

Android 未调用SyncAdapter onPerformSync,android,android-syncadapter,Android,Android Syncadapter,我正在开发一个离线第一个应用程序,它使用SyncAdapter将数据加载到Web服务器。基本上,使用greenDao库将数据保存到本地SQLite数据库中。每次添加或删除数据时,我都会调用performSync()方法,使其与Web服务器同步。我的问题是,onPerformSync()从未被调用 我对这个概念还不熟悉,而且还在学习,所以有一些事情我还不清楚 我已经实现了StubAuthenticator,StubAuthenticatorService,StubProvider,SyncAdap

我正在开发一个离线第一个应用程序,它使用SyncAdapter将数据加载到Web服务器。基本上,使用greenDao库将数据保存到本地SQLite数据库中。每次添加或删除数据时,我都会调用
performSync()
方法,使其与Web服务器同步。我的问题是,
onPerformSync()
从未被调用

我对这个概念还不熟悉,而且还在学习,所以有一些事情我还不清楚

我已经实现了
StubAuthenticator
StubAuthenticatorService
StubProvider
SyncAdapter
SyncService
,就像在中一样

我不清楚
accountType
。在文件中,他们说:

同步适配器框架要求每个同步适配器具有域名形式的帐户类型。框架使用帐户类型作为同步适配器内部标识的一部分。对于需要登录的服务器,帐户类型以及用户帐户将作为登录凭据的一部分发送到服务器。 如果您的服务器不需要登录,您仍然需要提供帐户类型。对于值,请使用您控制的域名。虽然框架使用它来管理同步适配器,但该值不会发送到服务器

我的服务器不需要登录,但我不确定传递给
accountType
属性的内容

存储库
数据库功能类:

public class UnicornRepository {

    private static String AUTHORITY = ".sync";
    private static String ACCOUNT = "dummyAccount";
    private static String ACCOUNT_TYPE = "unicorns.com"; //Not sure about this

    private static UnicornRepository instance;

    private Account mAccount;

    private UnicornRepository(Context application){
        mAccount = createSyncAccount(application);
    }

    public static UnicornRepository getInstance(Context application) {
        if (instance == null) {
            instance = new UnicornRepository(application);
        }
        return instance;
    }

    public void addUnicorn(Unicorn unicorn) {
        //Add unicorn to database
        sync();
    }

    public void deleteUnicorn(Unicorn unicorn) {
        //Delete unicorn from database
        sync();
    }

    private Account createSyncAccount(Context context) {
        Account account = new Account(ACCOUNT, ACCOUNT_TYPE);
        AccountManager accountManager = (AccountManager) context.getSystemService(Context.ACCOUNT_SERVICE);
        accountManager.addAccountExplicitly(account, null, null); //returns false
        return account;
    }

    private void sync() {
        ContentResolver.requestSync(mAccount, AUTHORITY, Bundle.EMPTY);
    }
}
accountManager.addaccountexplicit()
返回false,因此该帐户无法登录。是不是没有调用reasen
onPerformSync()
?如果是,我应该传递什么到
accountType

我不确定这是否是足够的信息。如果您需要更多信息,我可以添加它们

编辑:
我刚刚发现该帐户已登录,所以这不是问题所在。问题必须在其他地方。

如果是,我应该向accountType传递什么-与
中的问题相同,但在
同步适配器中我应该向它传递什么?这重要吗
unicorns.com
不存在,我只是把它放在那里,因为我不知道实际放在那里的是什么。