//實現有無網絡監聽
動態註冊方式特色: 在代碼中進行註冊後, 當應用程序關閉後, 就再也不進行監聽。
//源文件2個一個MainActivity.java和NetStateReceiver.java類
//記得在配置清單裏添加網絡鏈接權限
一、MainActivity.java類
代碼
public class MainActivity extends Activity {java
private NetStateReceiver netStateReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
netStateReceiver = new NetStateReceiver();
}
@Override
protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
//在這個方法動態建立廣播接收
IntentFilter filter = new IntentFilter();//過濾
//設置過濾
filter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
//動態註冊廣播接收
registerReceiver(netStateReceiver, filter);
}
@Override
protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
//撤銷網絡狀態監聽
unregisterReceiver(netStateReceiver);
}
}android
=================網絡
二、NetStateReceiver.java類ide
代碼spa
public class NetStateReceiver extends BroadcastReceiver {.net
@Override
public void onReceive(Context context, Intent intent) {
//獲取鏈接管理器
ConnectivityManager connectivityManager = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
//經過鏈接管理器獲取當前網絡信息
NetworkInfo info = connectivityManager.getActiveNetworkInfo();
if(info == null){
Toast.makeText(context,"當前無網絡!", Toast.LENGTH_SHORT).show();
}
else if(info.isConnected()){//有網絡
Toast.makeText(context, info.getTypeName() + "網路已鏈接", Toast.LENGTH_SHORT).show();
}
}get
}
it