我有一个简单的广播接收器设置来接收系统意图,通知我的应用程序网络状态的变化。这个想法是要么显示一个对话框,告诉用户他们已经离开了运行应用程序的 WiFI 网络,要么完全失去了连接。
public class NetworkChangedReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(WifiManager.SUPPLICANT_CONNECTION_CHANGE_ACTION)){
boolean connected = intent.getBooleanExtra(WifiManager.EXTRA_SUPPLICANT_CONNECTED,false);
if(!connected){
//connection off
Log.w("Network Changed","SUPPLICATION_CONNECTION_CHANGE_ACTION");
}
}else if(intent.getAction().equals(WifiManager.NETWORK_STATE_CHANGED_ACTION)){
NetworkInfo info = intent.getParcelableExtra(WifiManager.EXTRA_NETWORK_INFO);
if(info.isConnected()){
//connection on or WIFI changed
Log.w("Network Changed","NETWORK_STATE_CHANGED_ACTION");
}
}
}
}
我是否可以以这种方式显示对话框?我无法知道用户在应用程序中的位置,接收到广播时的未知状态。我的另一个选择是使用带有字符串和布尔额外测试的意图将用户跳回我的登录活动。这样做是不好的编程习惯吗?