【发布时间】:2016-07-21 04:56:52
【问题描述】:
我按照本教程来检测网络变化并在没有网络连接时提醒用户:
http://viralpatel.net/blogs/android-internet-connection-status-network-change/
我修改了代码,以便在用户断开网络连接时打开一个名为 NoInternetConnection 的活动。
当用户重新连接到网络时,我想关闭 NoInternetConnection 活动。我无法用广播接收器解决这个问题。有关如何执行此操作的任何提示?
这是我的广播接收器:
public class NetworkChangeReceiver extends BroadcastReceiver {
private static final String TAG = NetworkChangeReceiver.class.getSimpleName();
@Override
public void onReceive(final Context context, final Intent intent) {
String status = NetworkUtil.getConnectivityStatusString(context);
Log.d(TAG, "status: " + status);
ActivityManager am = (ActivityManager) context.
getSystemService(Activity.ACTIVITY_SERVICE);
String className = am.getRunningTasks(1).get(0).topActivity.getClassName();
if(status == "connected"){
if(className.toLowerCase().contains("nointernetactivity")){
// check if the No Internet Activity context is visible
Log.d(TAG, "Close noInternetActivity");
}
}else {
if(!className.toLowerCase().contains("nointernetactivity")){
Log.d(TAG, "opening NoInternetActivity");
Intent i = new Intent(context, NoInternetActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
// Toast.makeText(context, status, Toast.LENGTH_LONG).show();
}
}
【问题讨论】: