Как запускать фоновый сервис ежедневно только при включении интернет-соединения? - PullRequest
0 голосов
/ 14 октября 2019

Я хочу, чтобы при подключении к Интернету в любое время суток фоновая служба запускалась автоматически.

Ответы [ 2 ]

0 голосов
/ 14 октября 2019

Использование WorkManager с PeriodicWorkRequest с Ограничения , как показано ниже:

    Constraints myConstraints = 
        new Constraints.Builder().
        setRequiredNetworkType(NetworkType.CONNECTED).
        build(); 

    PeriodicWorkRequest mywork = 
        new PeriodicWorkRequest.Builder(MyWorker.class, 24, TimeUnit.HOURS).
        setConstraints(myConstraints).build();

    WorkManager.getInstance().
        enqueue(mywork);
0 голосов
/ 14 октября 2019

Просто напишите простой bash для ping google один раз, если вы получили ping, то ваш интернет ОНЛАЙН. Запустите вашу программу. Если нет интернета, остановите программу.

Пример:

#!/bin/bash

if ping -q -c 1 -W 1 google.com >/dev/null; 
then
sudo systemctl start YourProgram                   
else
sudo systemctl stop YourProgram
fi

Теперь просто измените код после ваших потребностей. Вы даже можете поместить его в петлю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...