недавно вернулся к некоторым разработчикам Android, и, поскольку Nougat кажется, что Firebase JobDispatcher нельзя запускать чаще, чем раз в 15 минут, что неприменимо в нашем случае использования, нам нужно иметь возможность отправлять и извлекать данные к нашему веб-сервису не реже одного раза в минуту.
Что следует / можно использовать вместо этого? Я еще не смог найти надежную замену, изучал SyncAdapter, IntentService и то, что я обнаружил, на самом деле они не подходят для этого случая использования.
Заранее спасибо.
Да, согласно нуги JobScheduler имеет такое же ограничение.
Вы можете использовать базовую услугу
public class YourWebService extends Service {
private final ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
@Override
public void onCreate() {
super.onCreate();
Runnable runnable = new Runnable() {
@Override
public void run() {
//your code here
//web request, data push, something else
}
};
//your code will be executed every 60 seconds
scheduler.scheduleAtFixedRate(runnable, 0, 60, TimeUnit.SECONDS);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
Вы можете начать свою службу с активности
startService(new Intent(YourActivity.this, YourWebService.class));
И вы должны зарегистрировать свою службу в manifest.xml
<service
android:name = ".YourWebService" />
Спасибо, пока мы использовали эту реализацию, и она кажется надежной.
Есть ли у JobScheduler ограничение на 15 минут? developer.android.com/reference/android/app/job/…. Firebase JobDispatcher обычно используется для случая, предшествующего Lollipop, когда JobScheduler не поддерживается.