Android同步适配器每10分钟触发一次

时间:2016-12-19 07:29:44

标签: android android-syncadapter

我想使用同步适配器每天调用一次方法。因为我不需要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");
}

1 个答案:

答案 0 :(得分:0)

如果您迫切需要解决方法

如果您的帐户也只是假人(看起来像),您可以使用AlarmManager代替同步适配器模式。然后,您不需要虚拟内容提供程序等。您可以在AlarmManager上设置timer - 何时调用消息或其他任何内容。

请注意,如果使用AlarmManager,则没有同步android系统功能。