美文网首页
12.2后台运行之UIBackgroundTaskIdentif

12.2后台运行之UIBackgroundTaskIdentif

作者: 草根小强 | 来源:发表于2019-05-17 13:13 被阅读0次

手机进入后台,会发生以下三种情况

一般来说,没有进行过任何设置的app,默认退到后台极短的几秒后就变成挂起状态
当设置了UIBackgroundTaskIdentifier后台任务标记时,程序后台保活会延迟到三分钟左右
再设置后台持续定位,或者持续voip播放模式后,会长时间保活,这个时间从原理上可以无限(参考网易、酷狗等音乐播放器),我自己用的后台持续定位模式所持续的时间基本都在2小时以上

下面讲解第二种情况
//app进入后台后保持运行

- (void)beginTask
{
    _backIden = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
        //如果在系统规定时间3分钟内任务还没有完成,在时间到之前会调用到这个方法
        [self endBack]; 
    }];
}

//结束后台运行,让app挂起

- (void)endBack
{
    //切记endBackgroundTask要和beginBackgroundTaskWithExpirationHandler成对出现
    [[UIApplication sharedApplication] endBackgroundTask:_backIden];
    _backIden = UIBackgroundTaskInvalid;
}

//示例

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    [self beginTask];
    
    [UIApplication sharedApplication].applicationIconBadgeNumber = 0;
    
    self.number = 0;
    self.timer = [NSTimer scheduledTimerWithTimeInterval:1.f repeats:YES block:^(NSTimer * _Nonnull timer) {
        self.number++;
        [UIApplication sharedApplication].applicationIconBadgeNumber = self.number;
        if (self.number == 9)
        {
            [self.timer invalidate];
        }
        
        NSLog(@"%@==%ld ",[NSDate date],self.number);
    }];
}

相关文章

  • 12.2后台运行之UIBackgroundTaskIdentif

    手机进入后台,会发生以下三种情况 一般来说,没有进行过任何设置的app,默认退到后台极短的几秒后就变成挂起状态当设...

  • Paper Collection - Background Ta

    1.IOS后台运行机制详解(一)2.IOS后台运行机制详解(二)3.IOS后台运行 之 后台播放音乐4.转载:IO...

  • 后台运行之UIBackgroundTaskIdentifier

    手机进入后台,会发生以下三种情况 一般来说,没有进行过任何设置的app,默认退到后台极短的几秒后就变成挂起状态 当...

  • 后台运行之Audio

    思路是在后台循环播放一段无声的音乐 第一步 在Background Models中勾选Audio,AirPlay,...

  • react native 0.64 xcode 12.2奇葩错

    新建demo react native :0.64 xcode 12.2 运行pod install 报错 The...

  • linux笔记4-管理后台进程

    命令运行时使用CTRL+Z,强制当前进程转为后台,并使之挂起(暂停). 1. 使进程恢复运行(后台) (1)使用命...

  • 后台运行之定位服务

    第一步 需要在info.plist中添加两个权限NSLocationAlwaysAndWhenInUseUsage...

  • 后台运行

    app可以在后台保留10分钟,但线程停止。 例如做手机验证码倒计时,退到后台后倒计时停止一直到进入前台才再次倒计,...

  • 后台运行

    设备运行的五种状态 Not running 程序未启动 或者已经被杀死Inactive ...

  • Linux命令后台运行

    Linux后台运行命令有两种方式: cmd & : 后台运行,关掉终端会停止运行 nohup cmd & : 后台...

网友评论

      本文标题:12.2后台运行之UIBackgroundTaskIdentif

      本文链接:https://www.haomeiwen.com/subject/xrxgoqtx.html