1.在流量网页,时实现断网,提醒等功能。
需要权限
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
2.注册一个BroadcastReceiver来接受网络状态的变化
public class NetworkChange extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { ConnectivityManager connectivityManager= (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo=connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); NetworkInfo wifiinfo=connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI); if(!networkInfo.isConnected()&&!wifiinfo.isConnected()){ /** * */ Toast.makeText(context,"网络不可用!",Toast.LENGTH_SHORT).show(); }else{ if(wifiinfo.isConnected()){ Toast.makeText(context,"wifi连接中!",Toast.LENGTH_SHORT).show(); } if(networkInfo.isConnected()){ Toast.makeText(context,"流量连接中!",Toast.LENGTH_SHORT).show(); } } } }
3.在activity总注册接收器即可:
public class MainActivity extends AppCompatActivity { private IntentFilter intentFilter; private NetworkChange networkChange; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /** * 监听网络状态 */ intentFilter=new IntentFilter(); intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE"); networkChange=new NetworkChange(); registerReceiver(networkChange,intentFilter); } /** * 动态注册接受者,记得取消注册 */ @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(networkChange); } }