oncreate()之后的Android应用程序互联网状态



我使用这个函数isOnline()oncreate方法来检查应用程序午餐时是否有互联网连接,并且运行良好!

    public boolean isOnline() {
    ConnectivityManager cm =
        (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    return netInfo != null && netInfo.isConnectedOrConnecting();
}

现在我想在应用程序启动后检查互联网连接,如果没有互联网连接,则显示警报!

我试着用这个,但我不知道我做错了什么。清单:

<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<receiver android:name=".UpdateReceiver" >
        <intent-filter>
            <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
        </intent-filter>
    </receiver>

活动类别:

 public class UpdateReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
    ConnectivityManager connectivityManager = ConnectivityManager)                                        context.getSystemService(Context.CONNECTIVITY_SERVICE );
              NetworkInfo activeNetInfo = connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
              boolean isConnected = activeNetInfo != null && activeNetInfo.isConnectedOrConnecting();   
              if (!isConnected)  
{     
                 AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();
    alertDialog.setTitle("Alert");
    alertDialog.setMessage("Alert message to be shown");
    alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
        new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
    finish();
            }
        });
    alertDialog.show();
            }
        }

您在"activity class:"下显示的代码不是活动,而是广播接收器。

如果您想在恢复应用程序后立即检查连接,请使用活动的onResume()方法调用isOnline(),并在网络不可用时显示警报消息。此外,当活动通过dialog.dismiss()转到onPause()时,请确保隐藏您的警报消息。

示例:

// In your activity:
@Override
public void onResume() {
    super.onResume();
    if (!isOnline()) {
        // show your alert dialog here.
    }
}
        @Override 
        public void onResume() { 
        super.onResume(); 
        if(!isOnline())
        { 
        AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create(); alertDialog.setTitle("ups..."); 
        alertDialog.setMessage("NO INTERNET CONNECTION");
 alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK", new DialogInterface.OnClickListener() { 
        public void onClick(DialogInterface dialog, int which) { 
    dialog.dismiss(); finish(); } }); 
        alertDialog.show(); 
        }

相关内容

最新更新