美文网首页
后台运行

后台运行

作者: liushong | 来源:发表于2016-04-05 10:19 被阅读0次

app可以在后台保留10分钟,但线程停止。

例如做手机验证码倒计时,退到后台后倒计时停止一直到进入前台才再次倒计,不符合需求,此时需要申请线程继续。

1.

@property (nonatomic, unsafe_unretained) UIBackgroundTaskIdentifier backgroundTaskIdentifier;

2.

-(void)applicationDidEnterBackground:(UIApplication *)application{

_istip4gpingcancel = NO;

// 使用这个方法来释放公共的资源、存储用户数据、停止我们定义的定时器(timers)、并且存储在程序终止前的相关信息。

// 如果,我们的应用程序提供了后台执行的方法,那么,在程序退出时,这个方法将代替applicationWillTerminate方法的执行。

// 标记一个长时间运行的后台任务将开始

// 通过调试,发现,iOS给了我们额外的10分钟(600s)来执行这个任务。

self.backgroundTaskIdentifier =[application beginBackgroundTaskWithExpirationHandler:^(void) {

// 当应用程序留给后台的时间快要到结束时(应用程序留给后台执行的时间是有限的), 这个Block块将被执行

// 我们需要在次Block块中执行一些清理工作。

// 如果清理工作失败了,那么将导致程序挂掉

// 清理工作需要在主线程中用同步的方式来进行

[self endBackgroundTask];

}];

}

- (void) endBackgroundTask{

dispatch_queue_t mainQueue = dispatch_get_main_queue();

AppDelegate *weakSelf = self;

dispatch_async(mainQueue, ^(void) {

AppDelegate *strongSelf = weakSelf;

if (strongSelf != nil){

// 每个对 beginBackgroundTaskWithExpirationHandler:方法的调用,必须要相应的调用 endBackgroundTask:方法。这样,来告诉应用程序你已经执行完成了。

// 也就是说,我们向 iOS 要更多时间来完成一个任务,那么我们必须告诉 iOS 你什么时候能完成那个任务。

// 也就是要告诉应用程序:“好借好还”嘛。

// 标记指定的后台任务完成

[[UIApplication sharedApplication] endBackgroundTask:self.backgroundTaskIdentifier];

// 销毁后台任务标识符

strongSelf.backgroundTaskIdentifier = UIBackgroundTaskInvalid;

}

});

}

相关文章

  • 后台运行

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

  • 后台运行

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

  • Linux命令后台运行

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

  • Linux后台运行程序与指定输出文件

    作者:Gakki 后台启动运行 linux 后台运行命令有两种方式:cmd &:后台运行,关掉终端会停止运行noh...

  • 2019-04-09 程序前后台切换、挂机后继续运行的方法

    后台运行程序: 1. 直接后台运行: [shell命令] & 2. 运行中转入后台: 先用ctrl+z挂起任务...

  • 终端后台命令

    command & : 后台运行,你关掉终端会停止运行 nohup command & : 后台运行,你关掉终端也...

  • iOS 短信验证码倒计时按钮

    级别: ★★☆☆☆标签:「iOS 验证码后台倒计时」「NSTimer后台运行」「iOS 定时器后台运行」作者: ...

  • Paper Collection - Background Ta

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

  • 后台运行jar包

    1、后台运行jar包方法: nohup意为后台不挂断运行,与是否账号退出无关 2、后台运行,并将相关日志输出到sp...

  • DOCKER后台运行centos

    后台运行centos(-it添加交互,不带-it无法运行到后台): docker run -itd ce...

网友评论

      本文标题:后台运行

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