gpt4 book ai didi

ios - UILocalNotification 可以用来唤醒后台任务吗

转载 作者:可可西里 更新时间:2023-11-01 05:37:31 25 4
gpt4 key购买 nike

我想知道,是否有可能以某种方式“唤醒”后台任务,以快速检查网络上的某些内容。我认为这可以通过 UILocalNotification 来完成,但是,无论我尝试了什么,当应用程序在后台时,我无法让 didReceiveLocalNotification 执行任何操作。启动后,我立即通过按下主页按钮关闭应用程序(本地通知触发有 10 秒的延迟)。当应用程序位于前台时,此代码可以完美运行,并且只是坐在那里......

在应用委托(delegate)头文件中:

 UILocalNotification *localNotif;

为了测试,我将本地通知设置为在 appDelegate 启动时快速触发。

localNotif = [[UILocalNotification alloc] init];
localNotif.fireDate = [NSDate dateWithTimeIntervalSinceNow:10]; // the date you want the notification to fire.
localNotif.timeZone = [NSTimeZone defaultTimeZone];
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];

NSLog(@"setup the timer for 10 seconds");





- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
UIApplicationState state = [application applicationState];
NSLog(@"getting kicked");
if (state == UIApplicationStateInactive) {

// Application was in the background when notification was delivered.

NSLog(@"INACTIVE..");
} else {
NSLog(@"ACTIVE..");

}

最佳答案

用户有几个选择:#1) 他们是否希望看到您的应用程序的通知。 #2) 如果您的应用启用了通知,他们是否想点击您的通知来启动您的应用。如果他们接受通知并在您的应用程序处于后台时打开您的通知,则会调用 application:didReceiveLocalNotification。需要明确的是,用户必须接受通知(例如滑动通知下方的 slider )...否则不会调用任何内容。

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification {
NSLog(@"%@", notification);
}

如果您的应用已终止 application:didFinishLaunchingWithOptions: 被调用 -

- (BOOL)application:(UIApplication *) 
application didFinishLaunchingWithOptions:
(NSDictionary *)launchOptions {
UILocalNotification *theNotification =
[launchOptions
objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];
NSLog(@"%@", theNotification);

return YES;
}

关于ios - UILocalNotification 可以用来唤醒后台任务吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13301793/

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