beginBackgroundTaskWithExpiratio

作者: ClarkWang_001 | 来源:发表于2015-06-23 08:50 被阅读8812次

    正常程序退出后,会在几秒内停止工作;
    要想申请更长的时间,需要用到
    beginBackgroundTaskWithExpirationHandler
    endBackgroundTask
    一定要成对出现

    - (void)applicationDidEnterBackground:(UIApplication *)application {
        
        [self beginTask];
        //在非主线程开启一个操作在更长时间内执行; 执行的动作
        aa =0;
        _timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(go:) userInfo:nil repeats:YES]; 
      }
    
    -(void)go:(NSTimer *)tim
    {
        NSLog(@"%@==%ld ",[NSDate date],aa);
        aa++;
        if (aa==9) {
            [_timer invalidate];
                [self endBack]; // 任务执行完毕,主动调用该方法结束任务
        }
    }
    
    -(void)beginTask
    {
        NSLog(@"begin=============");
       _backIden = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
           NSLog(@"begin  bgend=============");
           [self endBack]; // 如果在系统规定时间内任务还没有完成,在时间到之前会调用到这个方法,一般是10分钟
       }];
    }
    
    -(void)endBack
    {
        NSLog(@"end=============");
        [[UIApplication sharedApplication] endBackgroundTask:_backIden];
        _backIden = UIBackgroundTaskInvalid;
    }```
    `

    相关文章

      网友评论

      • 飞鱼_9cc9:楼主应用审核被拒了么?
        多LV信源:同样问, 是否能过审核
      • 步行者漫游:楼主 这样写可以审核通过吗
        飞鱼_9cc9:被拒了么?在线等
      • YGoooooooooal:去掉 _backIden = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
        NSLog(@"begin bgend=============");
        [self endBack]; // 如果在系统规定时间内任务还没有完成,在时间到之前会调用到这个方法,一般是10分钟
        }];
        代码进入后台也可以一直打印 什么鬼?!
      • zxcgetSomthing:什么意思啊,还是不太会用诶
      • 温暖的男人:很清晰
      • 星痕星尘9028:不错,简洁实用.

      本文标题:beginBackgroundTaskWithExpiratio

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