Альтернатива / замена Firebase Jobdispatcher

Недавно вернулся к некоторому устройству Android, и, поскольку Nougat, кажется, что Firebase JobDispatcher не может быть запущен чаще, чем раз в 15 минут, что не применимо в нашем случае использования, нам нужно иметь возможность извлекать и извлекать данные на наш веб-сервис, по крайней мере, один раз в минуту.

Что я должен / могу использовать вместо этого? Я пока не смог найти надежную замену, изучал SyncAdapter, IntentService и то, что я обнаружил, что они не совсем подходят для этого варианта использования.

Заранее спасибо.

1 ответ

Решение

Вы можете использовать базовый сервис

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" />
Другие вопросы по тегам