动态注册广播 监听网络变化
来源:互联网 发布:怎么用数据透视表求和 编辑:程序博客网 时间:2024/05/21 07:49
观看书籍,还望指正
1, 创建intentFilter实例 并添加action android.net.conn.CONNECTIVITY_CHANGE
2, 定义一个新的内部类networkChangeReceiver继承BroadcasetReceiver 重写onReceiver()方法
3, newworkChangeReceiver实例 调用registerReceiver()注册
4,重载onDestroy()方法
代码如下:
优化前
MainActivity.java
import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.Toast;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){ Toast.makeText(context,"network changes",Toast.LENGTH_SHORT).show(); } }}
优化后
MainActivity.java
import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.net.ConnectivityManager;import android.net.NetworkInfo;import android.support.v4.graphics.drawable.TintAwareDrawable;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.widget.Toast;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){// Toast.makeText(context,"network changes",Toast.LENGTH_SHORT).show(); ConnectivityManager connectionManager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); //通过getSystemService()方法得到connectionManager的实例 NetworkInfo networkInfo=connectionManager.getActiveNetworkInfo(); //通过getActiveNetworkInfo()方法得到networkInfo的实例 if(networkInfo!=null &&networkInfo.isAvailable()){ Toast.makeText(context,"network is available",Toast.LENGTH_SHORT).show(); }else { Toast.makeText(context,"network is unavailable",Toast.LENGTH_SHORT).show(); } } }}
0 0
- 动态注册广播 监听网络变化
- 动态注册广播,监听网络状态变化,判断网络模式
- 安卓笔记 动态注册广播 监听网络变化
- 动态注册监听网络变化
- 动态注册监听网络变化
- 静态注册广播监听网络变化
- Android动态注册广播,监听网络状态变化,判断网络模式
- android动态注册广播,监听网络状态变化,判断网络模式
- Android中动态(在类中)注册广播接收者,监听网络变化
- 【Android】安卓学习笔记之广播(一)动态注册监听网络变化
- android广播:动态注册监听网络变化(第一行代码android学习笔记)
- 广播监听网络变化
- Android监听时间变化的广播,只能动态注册
- Android---动态注册监听网路变化的广播
- 动态注册监听广播
- Android 监听开机广播启动服务 动态注册时间变化监听广播
- 使用广播监听网络变化
- 监听网络变化的广播
- xml中转义字符
- #文件编程#------文件类型指针
- leetcode_middle_91_86. Partition List
- 什么是确认测试
- 欢迎使用CSDN-markdown编辑器
- 动态注册广播 监听网络变化
- React Native动画之Animated仿网易云音乐启动动画
- android中showSoftInput不起作用 与 toggleSoftInput
- 可以上网但不能用FOXMAIL收发邮件
- 排队买票
- linux笔记-mysql
- jQuery的Deferred对象概述
- jenkins权限配置不对导致jenkins无法登陆
- [LeetCode]6. ZigZag Conversion