android BroadcastReceiver动态监听网络连接
2016-01-07 17:04
447 查看
当网络变化的时候系统会发出一个广播broadcast,只要在程序中注册一个广播接收器BroadcastReceiver,并在IntentFilter中添加相应的过滤,这样一旦网络有变化,程序就能监听到
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
package com.example.demo.myapplication.activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.content.pm.ActivityInfo; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.telephony.TelephonyManager; import android.util.Log; import android.widget.Toast; public abstract class BaseActivity extends AppCompatActivity { private IntentFilter intentFilter; private NetworkChangeReceiver networkChangeReceiver; protected abstract void initView(Bundle savedInstanceState); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //监听网络变化 listenerNetwork(); initView(savedInstanceState); } private void listenerNetwork(){ intentFilter=new IntentFilter(); intentFilter.addAction("android.net.conn.CONNECTIVITY_CHANGE"); networkChangeReceiver=new NetworkChangeReceiver(); registerReceiver(networkChangeReceiver, intentFilter); } private class NetworkChangeReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { ConnectivityManager mConnectivityManager = (ConnectivityManager) context .getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo mNetworkInfo = mConnectivityManager.getActiveNetworkInfo(); if (mNetworkInfo != null && mNetworkInfo.isAvailable()) { Toast.makeText(context,"网络连接正常!!",Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(context,"网络连接异常!!",Toast.LENGTH_SHORT).show(); } } } @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(networkChangeReceiver); } }别忘了添加权限:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
相关文章推荐
- TCP滑动窗口机制
- 一次tcp连接被reset的异常故障排查
- HTTP状态码总结
- 网络编程 java
- iOS9请求出现App Transport ... cleartext HTTP (http://)---HTTPS改HTTP
- mac下搭建http服务器(apache+php)并实现上传功能
- http--发送get请求获取网页
- 网络基础原理
- RNN学习笔记(二)-Gradient Analysis
- 转载 注解@PostConstruct与@PreDestroy讲解及实例 - 云淡风轻、仅此一抹 - 博客频道 - CSDN.NET http://blog.csdn.net/yaerfeng/art
- 404、500、502等HTTP状态码介绍
- 9.配置zabbix网络发现
- 图像处理与机器视觉网络资源收罗——倾心大放送
- TCP/IP具体解释--nagle算法和TCP_NODELAY
- Android 判断网络连接
- Nginx服务器配置对https的支持
- httpContext使用
- linux网络编程实用命令
- 常用LINUX系统网络分析命令
- The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path