【问题标题】:notification launch custom method/class通知启动自定义方法/类
【发布时间】:2013-01-26 02:21:03
【问题描述】:
只是想确保我走在正确的道路上。
我正在创建一个本地通知作为闹钟。当用户点击按钮时......我希望它做事。
我想我必须调用我的方法
(BOOL)应用程序:(UIApplication *)应用程序 didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
.. .for 当应用程序关闭时
(void)applicationWillEnterForeground:(UIApplication *)application
...当应用程序在后台时...当用户点击 OK 时
有没有更好的方法来做我想要完成的事情...当用户点击 OK 通知时做些什么?
提前致谢
【问题讨论】:
标签:
ios
uilocalnotification
localnotification
【解决方案1】:
根据本地和推送通知的文档,在这两种情况下都应该调用application:didFinishLaunchingWithOptions::
处理本地和远程通知
让我们回顾一下运营交付时可能出现的情况
应用程序的本地通知或远程通知。
当应用程序未在前台运行时,会发送通知。
在这种情况下,系统会显示通知、显示警报、标记图标,可能还会播放声音。
作为呈现通知的结果,用户点击警报的操作按钮或点击(或点击)应用程序图标。
如果点击操作按钮(在运行 iOS 的设备上),系统会启动应用程序并且应用程序调用它的
委托的应用程序:didFinishLaunchingWithOptions: 方法(如果
实施的);它传入通知有效负载(对于远程
通知)或本地通知对象(对于本地
通知)。
如果在运行 iOS 的设备上点击应用程序图标,应用程序会调用相同的方法,但不会提供有关
通知。
【解决方案2】:
他们不能被强迫打电话。仅监控。
UIApplicationDelegate 协议
这些方法为您提供有关关键事件的信息
应用程序的执行,例如何时完成启动,何时启动
即将终止,内存不足,重要变化时
发生。实施这些方法让您有机会回应
这些系统事件并做出适当的响应。
如果你想你是 ViewController 获取通知那里的方法。试试这个
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationDidFinishLaunching:) UIApplicationDidFinishLaunchingNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(applicationEnterForeground:) name:UIApplicationWillEnterForegroundNotification object:nil];
- (void)applicationDidFinishLaunching:(NSNotification *)noti
{
//do stuff
}
- (void)applicationEnterForeground:(NSNotification *)noti
{
//do sutff
}