App在后台运行

App有三种状态:

1. 死亡状态(未打开App);

2. 前台运行状态(打开状态);

3. 后台暂停状态(停止所有动画, 定时器, 多媒体联网等操作)

4. 后台运行状态(后台运行); ---------

需要在AppDelegate中设置:

1.  在 - (void)applicationDidEnterBackground:(UIApplication *)application方法中 设置:

  

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

    // 向操作系统申请后台运行资格, 能维持多久是不确定的.

    [application beginBackgroundTaskWithExpirationHandler:^{

     

    }];

所以:如果想让程序一直在后台运行, 需要做一下设置: 

  // 向操作系统申请后台运行的资格,能维持多久,是不确定的

    UIBackgroundTaskIdentifier task = [application beginBackgroundTaskWithExpirationHandler:^{

        // 当申请的后台运行时间已经结束(过期),就会调用这个block

        

        // 赶紧结束任务

        [application endBackgroundTask:task];

    }];

    

    // 在Info.plst中设置后台模式:Required background modes == App plays audio or streams audio/video using AirPlay

    // 搞一个0kb的MP3文件,没有声音, 循环播放

    

    // 以前的后台模式只有3种

    // 保持网络连接

    // 多媒体应用

    // VOIP:网络电话

}

原文地址:https://www.cnblogs.com/guangleijia/p/4995035.html