zoukankan      html  css  js  c++  java
  • iOS开发之后台运行调用beginBackgroundTaskWithExpirationHandler

    APP在正常运行过程中,突然按下Home键或者锁屏键,也或者电话接入,APP将进入后台,在几秒钟以后将退出程序.在程序使用socket或者播放器连接,短暂的进入后台需要保持活动状态,以免播放器退出,socket断开,可调用系统的beginBackgroundTaskWithExpirationHandler方法,程序进入后台AppDelegate将会使用applicationDidEnterBackground:方法,只需要在这里告诉即可.如下面

     backTaskIdentifier = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{

             [[UIApplication sharedApplication]endBackgroundTask:backTaskIdentifier];

             backTaskIdentifier = UIBackgroundTaskInvalid;

         }];

    使用beginBackgroundTaskWithExpirationHandler必须要成对使用endBackgroundTask方法,因为在后台保持任务只能持续180秒的时间,可以使用[[UIApplication sharedApplication]backgroundTimeRemaining]获取到当前在后台的剩余时间.超过180秒,不能调用当前的ID(即backTaskIdentifier)的endBackgroundTask,APP将崩溃闪退,这是Apple强制APP退出活动的结果.

    需要注意:backTaskIdentifier可看成当前APP进入后台的ID号,结束后台活动也必须是当前的ID,所以需要使用全局属性,可以当成MAC电脑上使用终端命令top查看各任务ID一样.

    {

        UIBackgroundTaskIdentifier backTaskIdentifier;

    }

    提高技能如同提升自信心。
  • 相关阅读:
    27. Remove Element
    列表变成字典
    1. Two Sum
    CVPR2019:What and How Well You Performed? A Multitask Learning Approach to Action Quality Assessment
    959. Regions Cut By Slashes
    118. Pascal's Triangle
    loj3117 IOI2017 接线 wiring 题解
    题解 NOI2019 序列
    题解 省选联考2020 组合数问题
    题解 Educational Codeforces Round 90 (Rated for Div. 2) (CF1373)
  • 原文地址:https://www.cnblogs.com/chims-liu-touch/p/6646062.html
Copyright © 2011-2022 走看看