OC - 18.监听iPhone的网络状态
使用系统的方法来监听网络状态
- 系统的方法是通过通知机制来实现网络状态的监听
实现网络状态监听的步骤
定义Reachability类型的成员变量来保存网络的状态
@property (nonatomic, strong) Reachability *reachability;
注册为通知中心的的观察者
// 在通知中心注册观察者
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(getNetworkStatus) name:kReachabilityChangedNotification object:nil];
/**
* getNetworkStatus:监听到通知的回调方法
* kReachabilityChangedNotification:通知的类型,即网络状态发生改变时,触发通知
* object:传递给getNetworkStatus回调方法的参数
*/
// 获取并保存网络状态
self.reachability = [Reachability reachabilityForInternetConnection];
// 开始监听
[self.reachability startNotifier];在监听到通知的触发方法中判断网络的状态
- (void)getNetworkStatus
{
if ([Reachability reachabilityForLocalWiFi].currentReachabilityStatus != NotReachable)
{
NSLog(@"是WIFI");
}
else if ([Reachability reachabilityForInternetConnection].currentReachabilityStatus != NotReachable)
{
NSLog(@"是手机自带网络");
}
else
{
NSLog(@"网络有问题");
}
}将观察者从通知中心移除,停止监听,清空网络监听对象
- (void)dealloc
{
[[NSNotificationCenter defaultCenter] removeObserver:self];
[self.reachability stopNotifier];
self.reachability = nil;
}
使用AFNetworking监听网络状态
- 通过AFN监听网络状态比较简单
实现网络状态监听的
获取AFNetworkReachabilityManager的实例
AFNetworkReachabilityManager *manager = [AFNetworkReachabilityManager sharedManager];
设置manager在网络发生变化的时回调的Block
[manager setReachabilityStatusChangeBlock:^(AFNetworkReachabilityStatus status) {
NSLog(@"----当前网络状态---%zd", status);
}];
/**
* status:表示当前网络的状态,是个枚举类型变量,具有以下取值
* AFNetworkReachabilityStatusUnknown = -1
* AFNetworkReachabilityStatusNotReachable = 0
* AFNetworkReachabilityStatusReachableViaWWAN = 1
* AFNetworkReachabilityStatusReachableViaWiFi = 2
*/开始监听
[manager startMonitoring];
OC - 18.监听iPhone的网络状态的更多相关文章
- iOS网络-06-监听Iphone的网络状态
使用系统的方法来监听网络状态 系统的方法是通过通知机制来实现网络状态的监听 实现网络状态监听的步骤 定义Reachability类型的成员变量来保存网络的状态 @property (nonatomic ...
- linux配置oracle11G监听及本地网络服务 及 数据库建库
配置监听及本地网络服务 在oracle用户的图形界面oracle用户中,新开启一个终端,输入命令netca 会弹出如下界面. 数据库建库 在oracle用户的图形界面oracle用户中,新开启一个终端 ...
- 监听Listview的滚动状态,是否滚动到了顶部或底部
/** * @author:Jack Tony * @description : 监听listview的滑动状态,如果到了顶部就刷新数据 * @date :2015年2月9日 */ private c ...
- Oracle Net Configuration(监听程序和网络服务配置)
1.在Oracle服务端和客户端都安装完之后,就需要配置监听程序和本地网络服务,以便外部程序和工具的访问,所以Oracle提供了两款自带的工具来配置它们分别是 Net Configuration.Ne ...
- iOS 实时监听app的网络连接状态
实际iOS开发中,在网络通信中我们大部分使用第三方(只谈短链),譬如 AFNetworking.ASIHttpRequest(这个停更了,想必现在没多少人用),swift的 Alamofire 等. ...
- Fiddler-3 配置Fiddler监听iphone的http/https请求
电脑端可以通过Fiddler监听手机端的http请求.需要两个步骤:首先配置Fiddler,再配置手机端. 1 配置 Fiddler 允许远程设备连接: 菜单Tools - Telerik Fiddl ...
- 监听TelephonyManager的通话状态来监听手机的所有的来电
import java.io.FileNotFoundException;import java.io.OutputStream;import java.io.PrintStream;import j ...
- Android 监听手机GPS打开状态
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/70854942 本文出自[赵彦军的博客] GPS_Presenter package ...
- kali linux: 网卡监听及扫描网络
一.网卡监听: kali不支持内置网卡,仅仅支持usb网卡.我用的虚拟机.首先在虚拟机的可移动设备里打开usb网卡的连接,执行ifconfig命令,如下: eth0接口是本地有线网卡信息,lo接口是本 ...
随机推荐
- Apache FileUpload详细介绍
Apache FileUpload组件 在最初的 http 协议中,没有上传文件方面的功能.RFC1867("Form-based File Upload in HTML".)为 ...
- (DT系列六)devicetree中数据和 struct device有什么关系
devicetree中数据和structdevice有什么关系 总体来说,devicetree与structdevice的关系应该还是在其生成platformdevice的时候,一直传递的struct ...
- sql日志框架log4jdbc的AOP式使用
log4jdbc.log4j2 参考:1. http://badqiu.iteye.com/blog/743100 2. https://code.google.com/p/log4jdbc/ 3 ...
- codeforces 358D
题目链接:http://codeforces.com/contest/358/problem/D #include<cstdio> #include<iostream> #in ...
- poj 3468 A Simple Problem with Integers【线段树区间修改】
A Simple Problem with Integers Time Limit: 5000MS Memory Limit: 131072K Total Submissions: 79137 ...
- 运用HBuilder上传到GitHub
Hbuilder安装github插件 如图所示: 一.打开自己GitHub,新建一个"库" 2.设置自己项目名和简介 3.建完后,就会显示GitHub要上传路径 4.打开" ...
- Android开发艺术探索(一)——Activity的生命周期和启动模式
Activity的生命周期和启动模式 生命周期有? 1.典型情况下的生命周期—>指有用户参与的情况下,Activity所经过的生命周期改变 2.异常情况下的生命周期—>指Activity被 ...
- BOM、DOM学习笔记——JavaScript
1.BOM的概述 browser object modal :浏览器对象模型. 浏览器对象:window对象. Window 对象会在 <body> 或 <fram ...
- Linux中查看系统资源占用情况的命令【转载】
用 'top -i' 看看有多少进程处于 Running 状态,可能系统存在内存或 I/O 瓶颈,用 free 看看系统内存使用情况,swap 是否被占用很多,用 iostat 看看 I/O 负载 ...
- [转]将某个Qt4项目升级到Qt5遇到的问题
原文:http://hi.baidu.com/xchinux/item/9044d8ce986accbb0d0a7b87晚上花了4个小时,将以前的一个项目从Qt 4.8.4-MinGW升级到了Qt5. ...