Android 只有在打开internet连接时,如何每天启动后台服务?
我希望当我在一天中的任何时间打开互联网连接时,后台服务会自动启动。只要写一个简单的bash来ping google一次,如果你得到ping,那么你的互联网是在线的。启动你的程序。如果没有internet,请停止该程序 例如:Android 只有在打开internet连接时,如何每天启动后台服务?,android,service,broadcastreceiver,background-service,Android,Service,Broadcastreceiver,Background Service,我希望当我在一天中的任何时间打开互联网连接时,后台服务会自动启动。只要写一个简单的bash来ping google一次,如果你得到ping,那么你的互联网是在线的。启动你的程序。如果没有internet,请停止该程序 例如: #!/bin/bash if ping -q -c 1 -W 1 google.com >/dev/null; then sudo systemctl start YourProgram else sudo systemctl
#!/bin/bash
if ping -q -c 1 -W 1 google.com >/dev/null;
then
sudo systemctl start YourProgram
else
sudo systemctl stop YourProgram
fi
现在只需根据需要修改代码。您甚至可以将其放置在循环中。使用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);
这不是我的意思,我想在一天中的任何时间打开互联网连接时启动后台服务。