2014-12-08 4 views
3

Я выполняю синхронизацию в своем приложении каждые 12 часов, раньше я пытался в android 4.4 ниже версии sync adapter работает нормально, но kitkat и выше periodicsync даже не запускают, пожалуйста, помогите мне ,PeriodicSync не работает в android kitkat и lollipop

public static void configurePeriodicSync(Context context, int syncInterval, int flexTime) { 
    Account account = getSyncAccount(context); 
    String authority = context.getString(R.string.content_authority); 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { 
     // we can enable inexact timers in our periodic sync 
     SyncRequest request = new SyncRequest.Builder(). 
       syncPeriodic(syncInterval, flexTime). 
       setSyncAdapter(account, authority).build(); 
     ContentResolver.requestSync(request); 
    } else { 
     ContentResolver.addPeriodicSync(account, 
       authority, new Bundle(), syncInterval); 
    } 
} 
+1

ли вы решить эту проблему? Я был бы признателен за любой отзыв – BamsBamx

+0

Я думаю, что нашел проблему. У меня отключена опция автоматической синхронизации. Go Settings-> Accounts -> [меню переполнения] -> Автосинхронизация данных – BamsBamx

+0

И убедитесь, что вы установили 'android: isAlwaysSyncable = "true"' в вашем syncadapter.xml и 'android: syncable = "true"' у вашего провайдера элемент AndroidManifest.xml – BamsBamx

ответ

3

Я решил этот вопрос, для KitKat и выше, мы должны написать отдельный код

код:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { 
      SyncRequest.Builder b = (new SyncRequest.Builder()).syncPeriodic(syncInterval, flexTime); 
      b.setSyncAdapter(account, authority); 
      b.setExtras(new Bundle()); 
      ContentResolver.requestSync(b.build()); 
     } else { 
      ContentResolver.addPeriodicSync(account, authority, new Bundle(), 
        syncInterval); 
Смежные вопросы