博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS中AsyncUdpSocket锁屏后失效的修正
阅读量:6589 次
发布时间:2019-06-24

本文共 1151 字,大约阅读时间需要 3 分钟。

hot3.png

其实很简单,就是在锁屏后AsyncUdpSocket会失效,没有办法继续receiveData。将原来的关闭,重新开启一个新的就好了。

具体的代码分两部分完成,首先是在AppDelegate里注明方法

- (void)applicationDidEnterBackground:(UIApplication *)application{    [[Discover_UDP sharedDiscover_UDP]stopRun];}- (void)applicationWillEnterForeground:(UIApplication *)application{    [[Discover_UDP sharedDiscover_UDP]startReceive];}

看得出我的DisCover_UDP是自己封装的一个控制AsyncUdpSocket的单例方法,里面的stop和startReceive是这样的。

-(void)stopRun{    [_timer invalidate];    _timer = nil;    [_sendSocket close];    _sendSocket = nil;    [_receiveSocket close];    _receiveSocket = nil;}-(void)startReceive{    if (_sendSocket == nil) {        //发送端        _sendSocket = [[AsyncUdpSocket alloc]initWithDelegate:self];        [_sendSocket bindToPort:5678 error:nil];    }    if (_receiveSocket == nil) {        //接收端        _receiveSocket = [[AsyncUdpSocket alloc]initWithDelegate:self];        [_receiveSocket bindToPort:43708 error:nil];    }    if (_receiveSocket.isClosed) {        [_receiveSocket bindToPort:43708 error:nil];    }    [_receiveSocket receiveWithTimeout:-1 tag:0];}

这里只贴出了关于锁屏失效的处理部分,其余的逻辑和问题,各位大牛自行解决咯。

转载于:https://my.oschina.net/CrazyPeter/blog/392730

你可能感兴趣的文章
自动化设计-框架介绍 TestCase
查看>>
CJ看showgirl已经out!VR体验才是王道
查看>>
postgresql 数组类型
查看>>
Vue+Webpack常见问题(持续更新)
查看>>
栈与递归的实现
查看>>
Manually Summarizing EIGRP Routes
查看>>
spring boot 1.5.4 整合webService(十五)
查看>>
modsecurity(尚不完善)
查看>>
获取.propertys文件获取文件内容
查看>>
Redis3.0.5配置文件详解
查看>>
Keepalived+Nginx实现高可用
查看>>
Know about Oracle RAC Heartbeat
查看>>
JQuery——实现Ajax应用
查看>>
前端05.js入门之BOM对象与DOM对象。
查看>>
CISCO路由器NTP服务器配置
查看>>
oracle kill所有plsql developer进程
查看>>
12c rac 实例无法启动之磁盘组空间耗尽
查看>>
keepalived双机热备原理及实例部署LVS+keepalived
查看>>
曲线学习PyQt5方案一
查看>>
爬虫采集-基于webkit核心的客户端Ghost.py [爬虫实例]
查看>>