Waz*_*_Be 10 account android android-syncadapter
我刚为我的应用创建了一个帐户.
我也遵循了这里的所有步骤:https://stackoverflow.com/a/5255360/327402
这是我通过代码获取同步的代码
AccountManager am = AccountManager.get(this);
Account[] accounts = am.getAccountsByType(ACCOUNT);
//Log.e("DEBUG", "Accounts: " + accounts.length);
if (accounts.length == 0) {
Account account = new Account(getString(R.string.app_name), ACCOUNT);
ContentResolver.setIsSyncable(account, AUTHORITY, 1);
ContentResolver.addPeriodicSync(account, AUTHORITY, new Bundle(), 7200);
ContentResolver.setSyncAutomatically(account, AUTHORITY, true);
if (am.addAccountExplicitly(account, "pass1", null))
Log.i("DEBUG", "account Created: " + account.name + ", " + account.type);
else
Log.i("DEBUG", "addAccountExplicitly returned false");
}
else{
ContentResolver.requestSync(accounts[0], AUTHORITY, new Bundle());// THIS IS WORKING!!!
}
}
Run Code Online (Sandbox Code Playgroud)
所以,一切看起来都很正确.
但不幸的是,我不能定期同步!当我打开设置,帐户时,我看到帐户,日期和时间是我通过代码或手动执行同步的时间.
我知道自己做错了什么,或者忘记了什么?
改写
我在 GitHub 上整理了一个示例项目,演示了一个有效的 SyncAdapter。项目就在这里。
我只在具有 API 17 的模拟器上尝试过此操作,因为我不想等待大约一个小时左右(现在可能更长)才能进行同步。我建议你也走这条路。
在 API 17 上,此演示将每 30 秒左右进行一次同步。一切都在带有存根支持类的主活动中运行:SyncAdapter、StubProvider 等。同步适配器所做的唯一事情就是向 logcat 记录它已运行的消息。
除了设置同步的调用顺序可能不正确之外,我确实没有发现您的代码有任何问题。查看演示中的调用顺序,了解有效的示例。
希望这个对你有帮助。
(我在 Android Studio 3.0 Canary 5 上执行此操作。我希望这不是问题。)
| 归档时间: |
|
| 查看次数: |
1079 次 |
| 最近记录: |