`
ipjmc
  • 浏览: 707072 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用ConnectivityManager监听网络状态变化

阅读更多
	mIntenFilter = new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION);
    mConnectivityManager = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
    mReceiver = new BroadcastReceiver() {
			
		@Override
		public void onReceive(Context context, Intent intent) {

			if (intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false)) {
				Log.i(TAG, "netWork has lost");
			}
		
			NetworkInfo tmpInfo = (NetworkInfo) intent.getExtras().get(ConnectivityManager.EXTRA_NETWORK_INFO);
			Log.i(TAG, tmpInfo.toString() + " {isConnected = " + tmpInfo.isConnected() + "}");
		}
	};


注册Receiver,监听网络变化:
registerReceiver(mReceiver, mIntenFilter);


取消注册,不再监听网络变化:
unregisterReceiver(mReceiver);



也可在AndroidManifest.xml中注册BroadcastReceiver
        <receiver android:name=".ConnectionReceiver" >
            <intent-filter>
                <action android:name="android.net.conn.CONNECTIVITY_CHANGE" />
            </intent-filter>
        </receiver>	


程序第一次启动时会收到一个Broadcast

从 GPRS 到 WIFI,程序至少会收到3个Broadcast
第一个是连接到WIFI
第二个是断开GPRS
第三个是连接到WIFI

从WIFI到GPRS,程序至少会收到2个Broadcast
第一个是断开Wifi
第二个是连接到GPRS


分享到:
评论
3 楼 jasonpeak 2014-01-22  
貌似好高级的样子
2 楼 wymanliu 2013-03-12  
烦请提供个完整代码
1 楼 m331006 2012-10-22  
从 GPRS 到 WIFI 或者从WIFI到GPRS都会收到两到三次的broadcast啊。但是每次切换我只想给用户提示一次啊。这怎么实现啊!!!求解决!!!

相关推荐

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

    总的来说,Android通过BroadcastReceiver和ConnectivityManager服务,为开发者提供了一种有效的方式监听网络状态的变化。这使得应用程序能根据网络状态调整其行为,提高用户体验。通过学习和实践这一知识点,开发者...

    Android监听网络状态

    10. **NetworkCallback**:在Android API 24及以上版本,可以使用`ConnectivityManager.NetworkCallback`替代`BroadcastReceiver`来监听网络变化,这种方式更为高效且易于管理。 综上所述,Android监听网络状态涉及...

    Android实时监听网络变化

    在Android开发中,实时监听网络状态的变化是一项重要的功能,它能帮助应用在用户网络环境切换时做出相应的反应,比如切换到离线模式、暂停或恢复网络请求等。本示例"Android实时监听网络变化"专注于如何实现这个功能...

    android 广播监听网络变化

    在Android中,通过创建BroadcastReceiver并监听`android.net.conn.CONNECTIVITY_CHANGE`广播,我们可以实时监测网络状态的变化。无论是静态还是动态注册广播接收器,都能有效地帮助我们的应用及时响应网络状态的改变...

    Android利用广播BroadCast监听网络的变化

    6. **处理网络变化**: 在`onReceive()`方法内,我们可以使用ConnectivityManager获取当前的网络状态,并根据需求进行相应处理,比如弹出通知、更新UI或执行网络操作。 7. **权限申请**: 监听网络变化需要在...

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

    总的来说,动态注册广播监听网络变化是一种灵活且实用的方法,可以帮助开发者在应用运行时实时监控网络状态,从而根据网络状况做出相应的业务处理。通过以上步骤,你可以实现Android应用对网络状态变化的动态监听...

    BroadcastReceiver监听网络状态(2)

    这个接收器将注册并监听`ConnectivityManager.CONNECTIVITY_ACTION`广播,该广播在设备的网络连接状态发生变化时发出。 ```java public class NetworkChangeReceiver extends BroadcastReceiver { @Override ...

    android实时监听网络变化

    在onReceive()方法中,我们可以通过intent的动作(ACTION)来判断是哪种类型的网络变化,然后使用ConnectivityManager获取网络状态。ConnectivityManager是Android系统提供的网络管理服务,它提供了检查网络连接的...

    Android通过ConnectivityManager检查网络状态

    另外,虽然`TelephonyManager`也可以用来监听网络状态,尤其是移动数据连接的变化,但其监听网络状态的方法可能存在一些问题,比如首次启动时的误报和状态更新的多次回调。在实际开发中,如果遇到这些问题,可能需要...

    Android使用BroadcastReceiver监听网络连接状态的改变

    为了实现这一功能,开发者可以通过广播接收器(BroadcastReceiver)来监听网络状态的变化。下面将详细介绍如何在Android平台上利用BroadcastReceiver来监听网络连接状态的改变。 首先,我们来解释一下几个相关概念...

    BroadcastReceiver监听网络状态

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

    网络状态监听

    1. **Android中的NetworkCallback**:在Android系统中,开发者可以注册`ConnectivityManager.NetworkCallback`来监听网络变化。当网络连接状态发生变化时,系统会回调相关方法,让应用得知。 2. **iOS中的...

    监听网络变化

    在IT领域,监听网络变化是一项重要的技术,尤其在开发移动应用或者Web应用时,它能够帮助应用程序实时响应网络状态的变化,提升用户体验。本篇将详细探讨这个主题,并围绕"监听网络变化"及其关联的"自动加载数据...

    Android-NetMonitor使用广播监听网络变化更新UI

    `Android-NetMonitor`是一个示例项目,它展示了如何使用广播接收器(BroadcastReceiver)来监听网络连接的状态变化,并实时更新用户界面(UI)。这个项目的源代码可以在`NetMonitor-master`这个压缩包中找到。 1. *...

    Android-Android监听网络变化判断网络连接类型网络制式等工具类

    总结,Android中的网络状态管理和检测是通过BroadcastReceiver监听网络变化,ConnectivityManager查询网络连接类型,以及TelephonyManager获取网络制式来实现的。NetUtil工具类的引入则为开发者提供了一种简洁的接口...

    Android移动开发检测网络状态并使用BroadcastReceiver(广播接收者)进行接收网络变化的后续处理

    在Android移动应用开发中,了解如何检测网络状态以及利用...通过ConnectivityManager获取网络状态,然后利用BroadcastReceiver监听网络变化,我们可以及时响应网络状态的切换,从而实现相应功能的自动调整。

    监听Android手机网络变更

    综上所述,监听Android手机网络状态变化主要涉及ConnectivityManager、BroadcastReceiver以及ACTION_NETWORK_STATE_CHANGED广播。通过正确使用这些工具,开发者可以确保应用在各种网络环境下正常工作,提高用户体验...

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

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

    安卓 监听网络及WIFI状态Demo

    在安卓应用开发中,监听网络和WIFI状态是一项常见的需求,尤其对于那些依赖网络服务的应用来说,实时了解网络状态并做出相应处理至关重要。本Demo主要展示了如何在安卓APP中实现网络和WIFI状态的监听,包括连接状态...

Global site tag (gtag.js) - Google Analytics