代码笔记获取系统完成任务所需的后台时间

Posted 菜鸟and小白

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码笔记获取系统完成任务所需的后台时间相关的知识,希望对你有一定的参考价值。

一,代码。

AppDelegate.h

技术分享
#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;

//添加变量
@property (assign, nonatomic) UIBackgroundTaskIdentifier backgroundUpdateTask;

@end
技术分享

 

AppDelegate.m

技术分享
#import "AppDelegate.h"
#import "RootViewController.h"

@implementation AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    // Override point for customization after application launch.
    
    RootViewController *rootVC=[[RootViewController alloc]init];
    UINavigationController *nav=[[UINavigationController alloc]initWithRootViewController:rootVC];
    self.window.rootViewController=nav;
    
    
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];
    return YES;
}

- (void)applicationWillResignActive:(UIApplication *)application
{
    // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
    // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    
    [self beingBackgroundUpdateTask];
    // 在这里加上你需要长久运行的代码
    
    //最后彻底的还一次。
    [self endBackgroundUpdateTask];
    
}

- (void)beingBackgroundUpdateTask
{
    self.backgroundUpdateTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
        //有借有还。
        [self endBackgroundUpdateTask];
    }];
}
- (void)endBackgroundUpdateTask
{
    [[UIApplication sharedApplication] endBackgroundTask: self.backgroundUpdateTask];
    self.backgroundUpdateTask = UIBackgroundTaskInvalid;
}
技术分享

 

以上是关于代码笔记获取系统完成任务所需的后台时间的主要内容,如果未能解决你的问题,请参考以下文章

ansible plugins简介

如何确定使用 FreeRTOS xTaskCreate 创建单个任务所需的 Stackdepth?

如何为一组任务确定计划,估计每个任务所需的时间?

项目关键路径上的任务所需的设备交付延迟了两个星期。项目经理应该做什么?

在进度监控和更新进度条的上下文中

如何在不考虑应用程序在后台的时间的情况下测量经过的游戏时间?