android学习笔记 动态注册广播例程
Posted before16
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android学习笔记 动态注册广播例程相关的知识,希望对你有一定的参考价值。
public class MainActivity extends AppCompatActivity {
private NetworkStateChangeReceiver networkStateChangeReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
IntentFilter intentFilter = new IntentFilter();//创建IntentFilter实例
intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");//添加action
networkStateChangeReceiver = new NetworkStateChangeReceiver();//创建NetwokrStateChangeReceiver实例
registerReceiver(networkStateChangeReceiver, intentFilter);//注册广播接收器
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(networkStateChangeReceiver);//动态注册的广播接收器需要取消注册
}
/**
* 定义NetworkStateChangeReceiver类,继承自BroadcastReceiver
*/
static class NetworkStateChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//You need to call getSystemService on a Context!!!
ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isAvailable()) {
Toast.makeText(context, "networkInfo: is Available", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context, "networkInfo: not Available", Toast.LENGTH_SHORT).show();
}
}
}
}
需要在AndriodManifest.xml注册权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
AndroidStudio会自动提示,点击Add会自动添加
以上是关于android学习笔记 动态注册广播例程的主要内容,如果未能解决你的问题,请参考以下文章