`

监听网络状态

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

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

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

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

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

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

1、定义一个Receiver重载其中的onReceive函数,在其中完成所需要的功能,如根据WIFI和GPRS是否断开


import android.app.Activity;
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.os.Handler;

public class NetstateReceiver extends BroadcastReceiver {

private Handler    mHandler;
private Activity   mAct;
private NetstateReceiver mReceiver;
public final static int  IS_CONNECTED = 5;
public final static int  IS_NOT_CONNECTED = 6;

private NetstateReceiver()
{
  super();
}
public NetstateReceiver(Handler handler,Activity act)
{
  mHandler = handler;
  mAct  = act;
  if(mReceiver == null)
   mReceiver = new NetstateReceiver();
}

@Override
public void onReceive(Context context, Intent intent) {
  ConnectivityManager manager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
  NetworkInfo gprs = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
  NetworkInfo wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
  if(!gprs.isConnected() && !wifi.isConnected())
  {
   mHandler.sendEmptyMessage(IS_NOT_CONNECTED);
  }
  else
  {
   mHandler.sendEmptyMessage(IS_CONNECTED);
  }
}

public void register()
{
  IntentFilter filter = new IntentFilter(Context.CONNECTIVITY_SERVICE);
  mAct.registerReceiver(mReceiver, filter);
}

public void unregister()
{
  mAct.unregisterReceiver(mReceiver);
}

}

分享到:
评论

相关推荐

    Android监听网络状态

    以下是一些关于“Android监听网络状态”的关键知识点: 1. **网络连接状态获取**:Android提供了`ConnectivityManager`类来获取和管理设备的网络连接状态。通过调用`getActiveNetworkInfo()`或`getAllNetworkInfo()...

    Android通过使用广播监听网络状态的改变

    在Android系统中,开发者可以利用系统的广播机制来监听网络状态的变化。这是一项非常重要的功能,因为应用程序往往需要根据网络连接的状态来决定是否加载在线数据或者执行网络相关的操作。本篇文章将详细探讨如何在...

    时时监听网络状态/判断网络连接情况

    1、用service和broadcastReceiver来时时监听网络状态。 2、判断网络连接状态的方法(如mobile网络和wifi网络) 3、用广播WifiManager.NETWORK_STATE_CHANGED_ACTION和ConnectivityManager.CONNECTIVITY_ACTION都行,...

    BroadcastReceiver监听网络状态(2)

    在这个特定的场景中,我们关注的是如何在Fragment中利用`BroadcastReceiver`来监听网络状态的变化。网络状态监控对于许多应用程序来说是必要的,因为它们可能需要在用户失去网络连接时提供相应的反馈或者执行特定的...

    BroadcastReceiver监听网络状态

    在本场景中,"BroadcastReceiver监听网络状态" 的核心目标是利用BroadcastReceiver来实时监控设备的网络连接状况,并根据网络状态的变化更新当前的Activity。这在现代移动应用中非常常见,因为用户期望应用能够无缝...

    android监听网络状态Demo

    使用BroadcastReceiver监听网络状态 当网络连接或者断开会弹出Toast提示,同时System.out打印出连接信息 NetUtils中有四个方法可以检测网络是否连接、wifi是否连接、移动网络是否连接、连接类型

    实时监听网络状态

    本项目"实时监听网络状态"旨在提供一种方法来监控网络活动,以便开发者和网络管理员能够更好地理解网络流量和潜在问题。下面我们将深入探讨网络监听的概念、其应用以及如何实现。 1. **网络监听的基本概念** 网络...

    安卓启动退出网络判断相关-实时监听网络状态.rar

    在安卓开发中,实时监听网络状态是一项至关重要的任务,它能确保应用在各种网络环境下都能正常运行。"安卓启动退出网络判断相关-实时监听网络状态.rar"这个压缩包可能包含了实现这一功能的相关代码示例和资源。下面...

    Android-NetworkState一个轻量级的网络状态监听库方便实用

    3. 注册和取消注册监听:在需要监听网络状态的地方调用NetworkState.registerListener()方法注册监听器,在不再需要监听时调用unregisterListener()进行取消注册。 与EventBus类似,"Android-NetworkState"也采用了...

    【Android】Android 监听网络状态+源代码

    在Android应用中监听网络状态,首先需要在`AndroidManifest.xml`文件中添加对互联网权限的请求: ```xml ``` `ACCESS_NETWORK_STATE`权限用于获取网络状态信息,`INTERNET`权限则是进行网络操作的基础。 2....

    Android高级应用源码-android监听网络状态Demo.rar

    本示例"Android高级应用源码-android监听网络状态Demo"就是针对这一需求提供的一份实践代码。 首先,我们需要了解Android中监测网络状态的基本方法。Android系统提供了`ConnectivityManager`服务,它是管理设备网络...

    Android高级应用源码-android监听网络状态Demo.zip

    Android高级应用源码-android监听网络状态Demo.zip

    安卓启动退出网络判断相关-android监听网络状态Demo.zip

    这个"安卓启动退出网络判断相关-android监听网络状态Demo.zip"应该包含了一个示例项目,用于演示如何在Android应用中检测网络连接的状态。下面,我们将详细探讨这个主题。 首先,Android系统提供了`...

    网络状态监听

    通过监听网络状态,我们可以及时发现并解决网络问题,例如网络中断、速度下降或数据传输异常等。 在移动应用开发中,网络状态监听尤其重要。例如,当用户的手机切换到飞行模式或进入无信号区域时,应用需要能够快速...

    (Swift)NetworkUtil监听网络

    我们可以将其集成到项目中,然后在`NetworkUtil`中使用它来监听网络状态。首先,添加`Reachability.swift`文件到项目中,然后遵循以下步骤: 1. **导入库**:在`NetworkUtil`类的顶部,导入`Reachability`库。 ```...

    Android 网络状态监听 QQ

    接下来,我们需要监听网络状态的变化。Android提供了`BroadcastReceiver`来接收广播事件,其中包括网络状态改变的广播。创建一个继承自`BroadcastReceiver`的类,并重写`onReceive()`方法,这里可以检查接收到的广播...

    监听Android手机网络变更

    在Android开发中,监听网络状态的变化是一项常见的需求,比如应用需要根据网络的可用性来决定是否加载远程数据或者执行特定操作。本篇文章将详细讲解如何在Android应用中实现对网络连接状态的监听。 首先,我们需要...

    Swift-NetworkUtilAlamofire(网络监听)

    这个库可以帮助我们监听网络连接的变化,包括WiFi和蜂窝数据。 2. **通知中心**:注册到`NotificationCenter`,监听特定的网络状态变化通知,如`nw_path监测器`的事件。 三、Alamofire的网络监听 虽然Alamofire...

    Android中动态注册广播监听者,监听网络变化

    同时,为了监听网络状态变化,我们需要在IntentFilter中添加ConnectivityManager.CONNECTIVITY_ACTION常量,这是表示网络连接改变的广播意图。 此外,需要注意的是,从Android 6.0(API level 23)开始,检查网络...

    Android 实时监测(监听)网络连接状态变化

    android网络监听变化,判断当前是什么网络类型,实时监听。android网络监听变化,判断当前是什么网络类型,实时监听。android网络监听变化,判断当前是什么网络类型,实时监听。android网络监听变化,判断当前是什么...

Global site tag (gtag.js) - Google Analytics