我希望我的应用程序始终在线。为此,我在服务中实现一个线程,该线程每隔5秒就重复检查一次因特网。那么最好的方法是什么?我希望我的代码能够始终在后台运行并且易于使用资源。我在服务中尝试了一个线程,但它使我的设备滞后。
public Boolean isOnline() {
try {
Process p1 = java.lang.Runtime.getRuntime().exec("ping -c 1 www.google.com");
int returnVal = p1.waitFor();
boolean reachable = (returnVal==0);
return reachable;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
答案 0 :(得分:0)
每隔几秒
无。合并 BAD 。您有ConnectivityManager提供回调以了解有关网络状态更改的信息。
答案 1 :(得分:-1)
您可以使用此代码
<div id="header" id="collapseThisDiv">
<img src="img/logo.png"></img><br>
<h3>HEADING</h3>
<blockquote class="form-text text-muted">Long Text in here</blockquote>
</div>
<div id="header" id="expandThisDiv">
<img src="img/logo.png"></img><br>
<h3>HEADING</h3>
</div>
click here了解更多详情
使用方法:
public boolean isInternetAvailable() {
try {
InetAddress ipAddr = InetAddress.getByName("google.com"); //You can replace it with your name
return !ipAddr.equals("");
} catch (Exception e) {
return false;
}
}