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