Android网络状态实时监听实例代码(二)

 更新时间:2016年03月01日 10:56:03   作者:智慧云端日记  
这篇文章主要介绍了Android网络状态实时监听实例代码(2)的相关资料,需要的朋友可以参考下

上篇文章给大家介绍了Android 网络状态实时监听代码实例(一),感兴趣的朋友可以点击了解详情,本文接着给大家介绍android网络状态监听相关知识,具体内容如下所示:

在开发android应用时,涉及到要进行网络访问,时常需要进行网络状态的检查,以提供给用户必要的提醒。一般可以通过ConnectivityManager来完成该工作。

ConnectivityManager有四个主要任务:

1、监听手机网络状态(包括GPRS,WIFI, UMTS等)

2、手机状态发生改变时,发送广播

3、当一个网络连接失败时进行故障切换

4、为应用程序提供可以获取可用网络的高精度和粗糙的状态

当我们要在程序中监听网络状态时,只要一下几个步骤即可:

1、定义一个Receiver重载其中的onReceive函数,在其中完成所需要的功能,如根据WIFI和GPRS是否断开来改变空间的外观或者提示是否能访问网络

package com.bsharksdk.receiver;
import com.bsharksdk.main.BSharkApi;
import com.bsharksdk.ui.BSToast;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
/**
* @author Javen
* 
*/
public class ConnectionChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager connectivityManager=(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo mobNetInfo=connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
NetworkInfo wifiNetInfo=connectivityManager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (!mobNetInfo.isConnected() && !wifiNetInfo.isConnected()) {
BSToast.showLong(context, "网络不可以用");
//改变背景或者 处理网络的全局变量
}else {
//改变背景或者 处理网络的全局变量
}
}
} 

2、在适当的地方注册Receiver,可以在程序中注册,在onCreate中调用如下函数即可:

private void registerReceiver(){
IntentFilter filter=new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
myReceiver=new ConnectionChangeReceiver();
this.registerReceiver(myReceiver, filter);
} 

3、在适当时取消注册Receiver,可以在程序中取消,在onDestroye中调用如下函数即可:

private void unregisterReceiver(){
this.unregisterReceiver(myReceiver);
} 

记得在 Activity中 设置变量 private ConnectionChangeReceiver myReceiver;

记得添加访问网络需要的权限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET" />

以上所述是小编给大家介绍的Android网络状态实时监听实例代码(2),希望对大家有所帮助!

相关文章

  • Android中二维码的扫描和生成(使用zxing库)

    Android中二维码的扫描和生成(使用zxing库)

    ZXing是一个开放源码的,用Java实现的多种格式的1D/2D条码图像处理库,它包含了联系到其他语言的端口,下面这篇文章主要给大家介绍了关于Android中二维码扫描和生成的相关资料,主要使用的zxing库,需要的朋友可以参考下
    2022-09-09
  • Android Studio做超好玩的拼图游戏 附送详细注释源码

    Android Studio做超好玩的拼图游戏 附送详细注释源码

    这篇文章主要介绍了用Android Studio做的一个超好玩的拼图游戏,你是0基础Android小白也能包你学会,另外附送超详细注释的源码,建议收藏!
    2021-08-08
  • Kotlin Service服务组件开发详解

    Kotlin Service服务组件开发详解

    这几天分析了一下的启动过程,于是乎,今天写一下Service使用; 给我的感觉是它并不复杂,千万不要被一坨一坨的代码吓住了,虽然弯弯绕绕不少,重载函数一个接着一个,就向走迷宫一样,但只要抓住主线阅读,很快就能找到出口
    2022-12-12
  • Android官方的侧滑控件DrawerLayout的示例代码

    Android官方的侧滑控件DrawerLayout的示例代码

    这篇文章主要介绍了Android官方的侧滑控件DrawerLayout的示例代码,非常具有实用价值,需要的朋友可以参考下
    2017-09-09
  • Android中使用Service实现后台发送邮件功能实例

    Android中使用Service实现后台发送邮件功能实例

    这篇文章主要介绍了Android中使用Service实现后台发送邮件功能的方法,结合实例形式分析了Service实现邮件的发送、接收及权限控制相关技巧,需要的朋友可以参考下
    2016-01-01
  • Android实现滑动加载数据的方法

    Android实现滑动加载数据的方法

    这篇文章主要介绍了Android实现滑动加载数据的方法,实例分析了Android通过滑动实现动态加载数据的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07
  • Flutter通过Container实现时间轴效果

    Flutter通过Container实现时间轴效果

    时间轴是前端UI经常用到的效果,本文讲解下Flutter如何通过Container实现,感兴趣的朋友可以了解下
    2021-05-05
  • Android自定义view实现太极效果实例代码

    Android自定义view实现太极效果实例代码

    这篇文章主要介绍了Android自定义view实现太极效果实例代码的相关资料,需要的朋友可以参考下
    2017-05-05
  • android聊天界面键盘、表情切换丝滑实现的具体思路

    android聊天界面键盘、表情切换丝滑实现的具体思路

    这篇文章主要给大家介绍了关于android聊天界面键盘、表情切换丝滑实现的具体思路,具体实现包括在XML布局中使用FrameLayout和RecyclerView,并在代码中进行相应的高度控制和事件处理,需要的朋友可以参考下
    2024-12-12
  • Android动态表格的实现代码(内容、样式可扩缩)

    Android动态表格的实现代码(内容、样式可扩缩)

    这篇文章主要介绍了Android动态表格的实现代码(内容、样式可扩缩),本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09

最新评论