• ios实现无限后台任务


    需求

    我们的app是使用心跳机制来保持用户的登陆状态,这样才能收到服务器发来的消息和命令,但是当app进入后台以后大约3分钟或者10分钟之后app就会被系统挂起,用户就会超时下线,这样就必须保持app长时间的后台运行

    原因

    app一般有三种状态前台运行中、进入后台以及挂起状态,当我们按home键或者锁屏键以后app进入后台运行,根据苹果的官方解释,苹果允许app运行一小段时间在后台运行,做一些处理,大约是十分钟左右的时间,十分钟之后app被系统强行挂起,挂起所有的操作和线程,当用户再点击进入此app时才会启动线程

    方案

    1、app内后台无线的播放音乐,Background Audio

    2、后台不停的定位,Location Services

    3、后台语音服务,voip

    4、报刊杂志后台自动下载更新,Newsstand

    .....

    实现

    我用的是后台定位,这是最简单的方式了,经过测试一上午用户都是在线的状态,但是我的app是企业级的应用不需要上线,所以没管审核的问题,此解决方案可能造成无法通过苹果的审核

    引入头文件

    #import <CoreLocation/CoreLocation.h>

    在AppDelegate.m内添加变量

    @property(nonatomic,strong)CLLocationManager * locationManager;

    app启动后创建实例,设置代理

    self.locationManager = [[CLLocationManager alloc] init];

        self.locationManager.delegate =self;

    app进入后台以后,持续定位

    [self.locationManager startUpdatingLocation];

  • 相关阅读:
    汇编语言LAHF和SAHF指令
    JSONHelper
    【CSS】利用宽高比例的媒体查询
    swiftmailer时没有设置https的选项,才可以发送成功。在linux下面
    DevExpress
    IntelliJ IDEA2017 激活方法 最新的激活注册方式方法,破解,密钥
    vue.js 列表追加项写法
    RedisCache 缓存
    时间通用类 datetime
    LogHelper 日志
  • 原文地址:https://www.cnblogs.com/liyy2015/p/7649493.html
Copyright © 2020-2023  润新知