ios怎么样让reachability在后台监听

 我来答
huanglenzhi
2015-04-13 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数: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~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Storm代理
2023-07-25 广告
StormProxies是一家可靠的代理服务提供商,提供原生IP(住宅原生IP)和高匿名代理服务。以下是关于StormProxies的原生IP服务的一些信息:1. 住宅原生IP:StormProxies提供的住宅原生IP是指从真实的家庭或企... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式