我想使用同步适配器每天调用一次方法。因为我不需要Content Provider
,所以我定义了一个虚拟提供程序,只是为了使同步适配器工作。问题是同步触发大约每10分钟,无论我设置什么时间,从不在某些设备上触发。如何在准确的时间使其在所有设备上运行?
final Account account = new Account(username, "com.example.shop");
Bundle userData = new Bundle();
accountManager.addAccountExplicitly(account, "", userData);
// initial sync adapter
String AUTHORITY = "com.example.shop.syncAdapter.DummyProvider";
ContentResolver.setIsSyncable(account, AUTHORITY, 1);
ContentResolver.setSyncAutomatically(account, AUTHORITY, true);
ContentResolver.addPeriodicSync(account, AUTHORITY, Bundle.EMPTY, 86400);
SyncAdapter:
@Override
public void onPerformSync(Account account, Bundle extras, String authority,
ContentProviderClient provider, SyncResult syncResult) {
Log.e("sync", "sync successful");
}
答案 0 :(得分:0)
如果您迫切需要解决方法:
如果您的帐户也只是假人(看起来像),您可以使用AlarmManager代替同步适配器模式。然后,您不需要虚拟内容提供程序等。您可以在AlarmManager上设置timer - 何时调用消息或其他任何内容。
请注意,如果使用AlarmManager,则没有同步android系统功能。