gpt4 book ai didi

android - 如何在整个应用程序中定期检查 Internet 连接?

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:31:37 26 4
gpt4 key购买 nike

我正在做一个在整个应用程序中使用 Internet 连接的应用程序。如果在使用该应用程序时互联网连接丢失,该应用程序将被强制关闭。为避免这种情况,如果互联网不可用,我想显示一条警报消息。我怎样才能做到这一点。在登录时,我正在使用以下代码检查连接性。但是我如何在后台为整个应用程序执行此操作。

private boolean haveInternet(){
NetworkInfo info = ((ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
if (info==null || !info.isConnected()) {
return false;
}
if (info.isRoaming()) {
// here is the roaming option you can change it if you want to disable internet while roaming, just return false
return true;
}
return true;
}

谢谢你..

最佳答案

您应该创建一个 BroadcastReceiver,当连接状态发生变化时将被触发:

     public class BroadCastSampleActivity extends Activity {
/** Called when the activity is first created. */
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.registerReceiver(this.mConnReceiver,
new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
}
private BroadcastReceiver mConnReceiver = new BroadcastReceiver() {
public void onReceive(Context context, Intent intent) {
boolean noConnectivity = intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
String reason = intent.getStringExtra(ConnectivityManager.EXTRA_REASON);
boolean isFailover = intent.getBooleanExtra(ConnectivityManager.EXTRA_IS_FAILOVER, false);

NetworkInfo currentNetworkInfo = (NetworkInfo) intent.getParcelableExtra(ConnectivityManager.EXTRA_NETWORK_INFO);
NetworkInfo otherNetworkInfo = (NetworkInfo) intent.getParcelableExtra(ConnectivityManager.EXTRA_OTHER_NETWORK_INFO);

if(currentNetworkInfo.isConnected()){
Toast.makeText(getApplicationContext(), "Connected", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(getApplicationContext(), "Not Connected", Toast.LENGTH_LONG).show();
}
}
};
}

然后在您的 AndroidManifest 中,您可以检查是否有连接:

    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

下载源代码 - here

关于android - 如何在整个应用程序中定期检查 Internet 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10350449/

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