我使用这个函数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();
}