gpt4 book ai didi

java - 用于检测网络是否可用的后台线程

转载 作者:行者123 更新时间:2023-12-01 06:16:28 25 4
gpt4 key购买 nike

我正在开发必须自动检测网络何时可用的应用程序。我正在考虑基于计时器运行后台线程来检测网络何时可用,这是正确的方法还是有任何标准程序来检查它?

最佳答案

    you can use android.net.conn.CONNECTIVITY_CHANGE broadcast

Add in your manifest



<receiver android:name="com.example.utils.CheckInternetConnection"
android:enabled="true" android:label="ConnectivityActionReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
</intent-filter>
</receiver>



public class CheckInternetConnection extends BroadcastReceiver {


@Override
public void onReceive(final Context arg0, Intent arg1) {

if (haveNetworkConnection(arg0)) {
//TODO iF INTERNET IS CONNECTED
}else{
//TODO iF INTERNET IS DISCONNECTED


}
}
private boolean haveNetworkConnection() {
boolean haveConnectedWifi = false;
boolean haveConnectedMobile = false;

try {
android.net.ConnectivityManager cm = (android.net.ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
android.net.NetworkInfo[] netInfo = cm.getAllNetworkInfo();
for (android.net.NetworkInfo ni : netInfo) {
if (ni.getTypeName().equalsIgnoreCase("WIFI"))
if (ni.isConnected())
haveConnectedWifi = true;
if (ni.getTypeName().equalsIgnoreCase("MOBILE"))
if (ni.isConnected())
haveConnectedMobile = true;
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return haveConnectedWifi || haveConnectedMobile;
}
}

关于java - 用于检测网络是否可用的后台线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23386780/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com