zoukankan      html  css  js  c++  java
  • 【读书笔记】iOS-GCD-block-后台执行

    当一个app按home键退出的时候。仅仅有最多5秒的时间做一些保存或清理资源的工作。

    可是调用beginBackgroundTaskWithExpirationHandler方法,能够最多有10分时间在后台执行。我们能够用这个时间来做清理本地缓存,发送统计数据等事情。

     

    AppDelegate.h

     

    复制代码
    复制代码
    #import <UIKit/UIKit.h>
    
    @interface AppDelegate : UIResponder <UIApplicationDelegate>
    
    @property (strong, nonatomic) UIWindow *window;
    
    //后台长久执行
    @property (assign, nonatomic) UIBackgroundTaskIdentifier backgroundUpdateTask;
    
    @end
    复制代码
    复制代码

     

     

     

     AppDelegate.m

     

    复制代码
    复制代码
    //当app进入后台的时候
    - (void)applicationDidEnterBackground:(UIApplication *)application {
        [self beingBackgroundUpdateTask];
        //须要长久执行的代码
        [self endBackgroundUpdateTask];
    }
    #pragma -mark -functions
    - (void)beingBackgroundUpdateTask
    {
        self.backgroundUpdateTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
            [self endBackgroundUpdateTask];
        }];
    }
    - (void)endBackgroundUpdateTask
    {
        [[UIApplication sharedApplication] endBackgroundTask: self.backgroundUpdateTask];
        self.backgroundUpdateTask = UIBackgroundTaskInvalid;
    }
    复制代码
    复制代码

     

     

     

    參考资料:

    http://www.devtang.com/blog/2012/02/22/use-gcd/

     


  • 相关阅读:
    Spring Boot 整合 Apache Ignite
    QuantumTunnel:Netty实现
    QuantumTunnel:内网穿透服务设计
    Java虚拟机
    LeetCode
    Java线程如何返回数据
    Java动态代理简单应用
    Java反射机制浅析
    数据结构之Heap (Java)
    JUnit4单元测试基础篇
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/7288882.html
Copyright © 2011-2022 走看看