gpt4 book ai didi

ios - 用户在 iOS 上关闭应用程序后执行操作

转载 作者:行者123 更新时间:2023-11-29 03:03:25 25 4
gpt4 key购买 nike

我想在应用进入后台十秒后执行一个操作,条件是用户在此期间没有返回应用。

为此,我使用以下代码:

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

UIBackgroundTaskIdentifier __block bgTask = 0;
UIApplication *app = [UIApplication sharedApplication];
bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
[app endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
}];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self checkSession];
});
}

-(void)checkSession{
sleep(10);
if([[UIApplication sharedApplication] applicationState] != UIApplicationStateActive) {
NSLog(@"Do action after 10 seconds");
}
else{
NSLog(@"Do nothing after 10 seconds");
}
}

问题是,如果用户在后台终止应用程序(通过滑动并关闭它),但在 10 秒过去之前,该操作将不会执行,我将看到此日志:

    <AppDelegate: 0x15557890> ending background task 5

知道在这种情况下如何执行该操作吗?

最佳答案

尝试使用 - (void)applicationWillTerminate:(UIApplication *)application 来应对用户在执行您的操作之前终止应用程序的情况

关于ios - 用户在 iOS 上关闭应用程序后执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23056101/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com