ios怎么样让reachability在后台监听
1个回答
2015-04-13 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
向TA提问 私信TA
知道合伙人数码行家
采纳数:117538
获赞数:517195
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。
向TA提问 私信TA
关注
展开全部
时刻检查设备的联网状态,并作出相应的处理,基本上是所有的联网程序需要考虑的问题,以前自己写个NSTimer 每多少卖哦循环一次,后来觉得这个思维有些不爽,就直接用Reachability来实现了
首先考虑要在每一个类都能用这个网络的判定结果,可以用一个单例写,怕麻烦的话 直接写在 AppDelegate也行。
.h的操作
@property (strong,nonatomic)Reachability *reachiability;
@property (assign,nonatomic)BOOL isReachable;//是否可用
@property (assign,nonatomic)NetworkStatus status;//判定状态用的
.m里
//开启网络状况的监听
[[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(reachabilityChanged:) name:kReachabilityChangedNotificationobject:nil];
self.reachiability = [ReachabilityreachabilityWithHostname:@"www.baidu.com"];
[self.reachiability startNotifier]; //开始监听,会启动一个run loop
OK 剩下的就是实现reachabilityChanged:这个带有参数的方法了
//网络链接改变时会调用的方法
-(void)reachabilityChanged:(NSNotification *)note
{
Reachability *currReach = [note object];
NSParameterAssert([currReach isKindOfClass:[Reachability class]]);
//对连接改变做出响应处理动作
self.status = [currReach currentReachabilityStatus];
//如果没有连接到网络就弹出提醒实况
self.isReachable = YES;
switch (self.status) {
case NotReachable:
{
//各种操作
self.isReachable = NO;
}
break;
caseReachableViaWiFi:
{
//各种操作
self.isReachable = YES;
}
break;
caseReachableViaWWAN:
{
//各种操作
self.isReachable = YES;
}
break;
default:
break;
}
}
在其他类里就可以用了~ 想判断是否有网络可以用 isReachable 想判断是什么网络可以用status~~
首先考虑要在每一个类都能用这个网络的判定结果,可以用一个单例写,怕麻烦的话 直接写在 AppDelegate也行。
.h的操作
@property (strong,nonatomic)Reachability *reachiability;
@property (assign,nonatomic)BOOL isReachable;//是否可用
@property (assign,nonatomic)NetworkStatus status;//判定状态用的
.m里
//开启网络状况的监听
[[NSNotificationCenterdefaultCenter] addObserver:selfselector:@selector(reachabilityChanged:) name:kReachabilityChangedNotificationobject:nil];
self.reachiability = [ReachabilityreachabilityWithHostname:@"www.baidu.com"];
[self.reachiability startNotifier]; //开始监听,会启动一个run loop
OK 剩下的就是实现reachabilityChanged:这个带有参数的方法了
//网络链接改变时会调用的方法
-(void)reachabilityChanged:(NSNotification *)note
{
Reachability *currReach = [note object];
NSParameterAssert([currReach isKindOfClass:[Reachability class]]);
//对连接改变做出响应处理动作
self.status = [currReach currentReachabilityStatus];
//如果没有连接到网络就弹出提醒实况
self.isReachable = YES;
switch (self.status) {
case NotReachable:
{
//各种操作
self.isReachable = NO;
}
break;
caseReachableViaWiFi:
{
//各种操作
self.isReachable = YES;
}
break;
caseReachableViaWWAN:
{
//各种操作
self.isReachable = YES;
}
break;
default:
break;
}
}
在其他类里就可以用了~ 想判断是否有网络可以用 isReachable 想判断是什么网络可以用status~~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家可靠的代理服务提供商,提供原生IP(住宅原生IP)和高匿名代理服务。以下是关于StormProxies的原生IP服务的一些信息:1. 住宅原生IP:StormProxies提供的住宅原生IP是指从真实的家庭或企...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询