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

2023-12-13

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

在应用程序委托头文件中:

 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叫做。需要明确的是,用户必须接受通知(例如滑动通知下方的滑块)...否则什么都不会被调用。

- (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;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UILocalNotification 可以用来唤醒后台任务吗 的相关文章

随机推荐

  • 如何迭代priority_queue?

    我可以遍历一个标准吗priority queue或标准queue在 C 中带有迭代器 比如vector 我不想使用 pop 因为它会导致我的队列出队 谢谢你的帮助 priority queue不允许迭代所有成员 大概是因为很容易使队列的优先
  • 如何通过 _blank 在新窗口中打开链接并在后台打开?

    对于正常链接 a href xxx target blank 链接将在新窗口 或选项卡 中打开 我想知道是否有办法在后台打开它 并保持当前窗口仍然处于活动状态 您先请open新窗口 我们称之为newWindow 做这个 newWindow
  • 如何从{$$state:Object}获取数据?

    我尝试使用工厂从数据库中获取数据 我有一个问题 因为我不知道如何从工厂返回的对象中获取数据 这是我使用 console log 函数时收到的信息 gt d state Object state Object status 1 value A
  • 获取并非每天发生的事件的每日计数

    我有一个customer当客户注册时会在其中插入新行的表 Problem 我想知道给定日期范围内每天的注册总数 例如 查找2015 07 01到2015 07 10每天的注册总数 顾客表样本数据 显示相关列 customerid usern
  • amazon-s3 中的 Errno::ENOENT (没有此类文件或目录)

    我有使用 amazon s3 将图像发布到存储桶部署到 heroku 的应用程序 这工作得很好 但是当获取相同的图像时会出现错误 Errno ENOENT No such file or directory showing path s3
  • 为 CUDA 内核调用设置 Visual Studio Intellisense

    我刚刚开始 CUDA 编程 进展非常顺利 我的 GPU 被识别了等等 我已经使用这里非常有用的指南在 Visual Studio 中部分设置了 Intellisense http www ademiller com blogs tech 2
  • 如何将 C++ 中的 QStringList 显示到 QML ListView

    所以我是 Qt 的新手 我正在努力提高我的 C 技能 所以我决定启动一个项目 在其中我可以使用文本字段搜索 QStringList 中的项目 我使搜索功能正常工作 并且能够将搜索结果移至另一个QStringList 我可以使用它在声明为 公
  • 我如何覆盖核心 Symfony2 类?

    我想重写核心 Symfony2 类 具体来说 我想覆盖供应商 symfony symfony src Symfony Bundle FrameworkBundle Template TemplateReference php Templat
  • 如何在Boost Spirit解析器中打印符号表匹配的变量?

    我是使用初学者boost spirit 假设我有以下代码来解析带有变量的简单算术表达式 include
  • 使用 sed 插入换行符 (\n)

    我正在尝试将一些列表清理到格式正确的 CSV 文件中以进行数据库导入 我的起始文件看起来像这样 每个 行 应该跨越多行 如下所示 Mr John Doe Exclusively Stuff 186 Caravelle Drive Ponte
  • context.filter 在 safari 上不起作用

    我正在使用 React 和 Safari 构建一个绘图应用程序 context filter无法正常工作 下面是在 chrome 和 firefox 上渲染的图片以及在 safari 上渲染的图片 对于 Safari 来说还有其他选择吗 S
  • 使用PCA选择特征

    我正在做无监督分类 为此 我有 8 个特征 绿色方差 绿色标准差 红色平均值 红色方差 红色标准差 色调平均值 色调方差 色调标准差 用于分类每个图像 我想使用 PCA 选择 3 个最重要的特征 我编写了以下代码用于特征选择 其中特征尺寸为
  • Google Fonts 字体无法加载

    我正在尝试将 PT Sans 添加到时事通讯中 但由于某种原因它没有加载我已经复制了几乎所有代码 但它不起作用 我将非常感谢任何可以提供帮助的人 这是 CSS 代码 h1 h2 h3 font family PT Sans sans ser
  • 可执行目标文件和虚拟内存

    我是 Linux 和虚拟内存的初学者 仍在努力理解虚拟内存和可执行对象文件之间的关系 假设我们有一个可执行目标文件a out存储在硬盘驱动器磁盘上 假设最初 a out 有一个 data具有值为 2018 的全局变量的部分 当加载程序运行时
  • JavaScript:通过 ID 设置嵌套对象值

    我想知道在 JavaScript 中更新多级对象集合成员的最佳方法是什么 这是我的收藏的简化版本 this Steps id 1 text test childSteps id 2 text test id 3 text test id 4
  • Bundle 正在等待名称空间处理程序 [http://camel.apache.org/schema/blueprint]

    我编写了一个简单的 apache Camel 项目 最终将部署在 FUSE 容器中 现在 我只是想让基本的单元测试正常工作 我正在使用这个例子here作为起点 我已经编写了有效的单元测试 但是当我包含蓝图文件时 我在测试输出中得到以下条目
  • 子类 Python 列表以验证新项目

    我想要一个 python 列表 它在外部将自身表示为其内部列表项的平均值 但在其他方面则表现为列表 它应该提高一个TypeError如果添加的项目无法转换为浮点数 我坚持的部分是提高TypeError 对于通过任何列表方法添加的无效项目 应
  • 可变寿命

    当执行行超出代码块时变量会发生什么 例如 1 public void myMethod 2 3 int number 4 number 5 5 所以 我们声明并设置变量 当它超出代码块 第 5 行 时 变量 number 发生了什么 这是创
  • 如何获得完全限定的程序集名称

    有没有简单的方法可以获得程序集的完全限定名称 例如 section type section 这是无耻的复制粘贴我记下来这是获取项目输出的 FQAN 的简单方法 Open Visual Studio Go to Tools gt Exter
  • UILocalNotification 可以用来唤醒后台任务吗

    我想知道 是否有可能以某种方式 唤醒 后台的任务 以快速检查网络上的某些内容 我认为这可以通过 UILocalNotification 来完成 但是 无论我尝试什么 当应用程序在后台时 我无法让 didReceiveLocalNotific