一: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); } }