一:1.首先定义广播,在广播onReceive中,对网络的不同状态进行判断,然后进行不同的处理。
2.MainActivity是正常网络状态下的交互页面
3.NetworkActivity是没有网络状态下的显示页面,这里为了区分,直接用isAvailable判断是否有网,不再对流量,有线网或wifi分别进行判断。
public class ConnectionReceiver extends BroadcastReceiver {
private Context mcontext;
public ConnectionReceiver(Context mcontext) {
super();
this.mcontext = mcontext;
}
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager mConnectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo();
if(mNetworkInfo!=null&&mNetworkInfo.isAvailable()){
Intent intent1 = new Intent(mcontext, MainActivity.class);
mcontext.startActivity(intent1);
}else {
Intent intent2 = new Intent(mcontext, NetworkActivity.class);
mcontext.startActivity(intent2);
}
}
}
二:在App中进行注册。
public class App extends Application {
private ConnectionReceiver connectionReceiver;
protected Context context;
@Override
public void onCreate() {
super.onCreate();
context = this;
RegisterNetReceiver();
}
public void RegisterNetReceiver(){
connectionReceiver = new ConnectionReceiver(context);
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(ConnectivityManager.CONNECTIVITY_ACTION);
registerReceiver(connectionReceiver, intentFilter);
}
}
本文介绍了一种在Android应用中实现网络状态监听的方法,并通过BroadcastReceiver组件在不同网络状态下切换MainActivity和NetworkActivity两个页面。当检测到网络可用时,应用会启动MainActivity;反之,则启动NetworkActivity。
2931

被折叠的 条评论
为什么被折叠?



