如何仅在打开互联网连接后每天启动后台服务?

问题描述 投票:0回答:2

我想在一天的任何时候打开互联网连接时,都会自动启动后台服务。

android service broadcastreceiver background-service
2个回答
0
投票

只需编写一次简单的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

现在只需根据需要更改代码。您甚至可以将其放置在循环中。


0
投票

使用WorkManager

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

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

    WorkManager.getInstance().enqueue(mywork);
© www.soinside.com 2019 - 2024. All rights reserved.