ios – UILocalNotification – 应用程序运行时如何处理?

ios – UILocalNotification – 应用程序运行时如何处理?,第1张

概述我已经在两个不同的应用程序中实现了UILocalNotifications.一个使用位置服务,这意味着如果它被杀死,它(通常)被重新启动(所以它不是一个大问题).然而,在另一个应用程序中,我根据时间安排了一个UILocalNotification.在这种情况下,我遇到了一个重大问题. 如果我安排通知,那么应用程序被杀死,推出内存,手机已关闭,然后再次打开,我无法在打开应用程序时自动查看较旧的通知. 我已经在两个不同的应用程序中实现了UIlocalnotifications.一个使用位置服务,这意味着如果它被杀死,它(通常)被重新启动(所以它不是一个大问题).然而,在另一个应用程序中,我根据时间安排了一个UIlocalnotification.在这种情况下,我遇到了一个重大问题.

如果我安排通知,那么应用程序被杀死,推出内存,手机已关闭,然后再次打开,我无法在打开应用程序时自动查看较旧的通知.

这是工作流程(应用程序在后台运行):

>启动应用程序应用计划通知;关闭应用程式应用程序现在在后台运行
>接收本地通知;首先忽略它;从顶部(状态栏)拉下拉菜单;触摸通知即可启动应用程序
>结果:应用程序适当地显示通知中的信息.

这是工作流无效(应用程序不再在后台运行):

>启动应用程序应用计划通知;关闭应用程式应用程序现在在后台运行
>手动杀死应用程序(模拟我的情况)
>仍然收到本地通知;首先忽略它;从顶部(状态栏)拉下拉菜单;触摸通知即可启动应用程序
>结果:应用程序启动,但dIDReceivelocalnotification方法未被调用.用户认为该应用不起作用.
注意:我甚至不能手动强制这些信息,因为如果他们收到了一个以上的通知,我就不知道他们碰到了哪一个,以便知道要显示哪一个.

当应用程序没有在后台运行(并且因此不运行dIDReceivelocalnotification方法)时,是否有任何方式知道他们所触及的通知?

解决方法 在第二种情况下,用户已经退出(或杀死)应用程序,所以当用户触摸通知时,您的应用程序将被启动.

这可以在下面提到的appDelegate的方法中处理

dIDFinishLaunchingWithOptions在启动应用程序时被调用,因此只需检查应用程序是否实际启动,因为用户触及通知(代码如下):

- (BOol)application:(UIApplication *)application dIDFinishLaunchingWithOptions:(NSDictionary *)launchOptions{    UIlocalnotification *notification = [launchOptions objectForKey:UIApplicationLaunchOptionslocalnotificationKey];    if (notification)     {        NSLog(@"notification caused app to launch,alert body = %@",notification.alertbody);        // do what ever action you want to do        // you Could just copy the code from "dIDReceivelocalnotification" and paste it here    }    return YES;}
总结

以上是内存溢出为你收集整理的ios – UILocalNotification – 应用程序运行时如何处理?全部内容,希望文章能够帮你解决ios – UILocalNotification – 应用程序运行时如何处理?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1095330.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存