[Android新手学习笔记28]-Broadcast-例一广播检测网络变化
2017-02-18 23:37
441 查看
新建一个带MainActivity的项目,注意这里需要获得网络使用状态,需要在AndroidMainfest文件中注册权限:
MainActivity代码如下:
广播必须注册,使用完必须取消注册,使用registerReceiver()方法可以进行注册,使用unregisterReceiver()方法取消注册。怎么才能接收广播呢?我们新建一个继承自BroadcastReceiver类的类,重写onReceive()方法,那么接收到广播后的逻辑就在这个方法中处理。android.net.conn.CONNECTIVITY_CHANGE是系统发出的广播名称,也就是网络连接改变时,会发出。然后注册上面的广播服务的会收到这条广播,进行相应的处理。
package="top.xiexiaodong.broadcastdemo">
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
MainActivity代码如下:
public class MainActivity extends AppCompatActivity {
private IntentFilter intentFilter;
private NetworkChangeReceiver networkChangeReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
intentFilter = new IntentFilter();
intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE");
networkChangeReceiver = new NetworkChangeReceiver();
registerReceiver(networkChangeReceiver, intentFilter);
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(networkChangeReceiver);
}
class NetworkChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo();
if (networkInfo != null && networkInfo.isAvailable()) {
Toast.makeText(context, "网络连接", Toast.LENGTH_SHORT).show();
Log.d("xxd", "网络连接");
} else {
Toast.makeText(context, "网络断开", Toast.LENGTH_SHORT).show();
Log.d("xxd", "网络断开");
}
}
}
}
广播必须注册,使用完必须取消注册,使用registerReceiver()方法可以进行注册,使用unregisterReceiver()方法取消注册。怎么才能接收广播呢?我们新建一个继承自BroadcastReceiver类的类,重写onReceive()方法,那么接收到广播后的逻辑就在这个方法中处理。android.net.conn.CONNECTIVITY_CHANGE是系统发出的广播名称,也就是网络连接改变时,会发出。然后注册上面的广播服务的会收到这条广播,进行相应的处理。
相关文章推荐
- [Android新手学习笔记30]-Broadcast-如何自定义广播
- [Android新手学习笔记31]-Broadcast-本地广播
- [Android新手学习笔记29]-Broadcast-例二广播实习开机自启动
- Android(java)学习笔记179:BroadcastReceiver之 有序广播和无序广播(BroadcastReceiver优先级)
- 【Android】利用广播BroadCast监听网络的变化
- Androidc学习笔记三之BroadcastReceiver广播接收器及单双页模式
- [Android新手学习笔记32]-Broadcast-强制下线
- 关于android广播包监听网络状态变化收到java.lang.NullPointerException: Error receiving broadcast Intent
- android学习之广播发送与检测网络开启服务
- Android学习篇章28-Broadcast广播基础-BroadcastReceiver
- Android(java)学习笔记177:BroadcastReceiver之 应用程序安装和卸载 的广播接收者
- Android之BroadcastReceiver(接收广播消息)学习笔记(一)
- 笔记 android 监听网络状态变化-------广播
- 安卓学习笔记---Android检测网络状态,判断当前网络是否可用
- Android 广播接收器学习之监听网络变化
- Android(java)学习笔记178:BroadcastReceiver之 自定义广播
- Android(java)学习笔记175:BroadcastReceiver之 外拨电话的广播接收者
- 【Android】利用广播BroadCast监听网络的变化
- Android(java)学习笔记176:BroadcastReceiver之 短信发送的广播接收者
- Android开发学习总结(1.22-广播机制(2)Broadcast)