1

只是想确保我走在正确的道路上。

我正在创建一个本地通知作为闹钟。当用户点击按钮时......我希望它做事。

我想我必须调用我的方法

  • (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions ..当应用程序关闭时

  • (void)applicationWillEnterForeground:(UIApplication *)application ...当应用程序在后台时...当用户点击ok

有没有更好的方法来做我想要完成的事情......当用户点击通知时做事?

提前致谢

4

2 回答 2

1

根据本地和推送通知的文档,您应该application:didFinishLaunchingWithOptions:在这两种情况下调用:

处理本地和远程通知

让我们回顾一下操作为应用程序传递本地通知或远程通知时的可能场景。

当应用程序未在前台运行时会发送通知。在这种情况下,系统会显示通知、显示警报、标记图标,可能还会播放声音。作为呈现通知的结果,用户点击警报的操作按钮或点击(或点击)应用程序图标。

如果点击操作按钮(在运行 iOS 的设备上),系统会启动应用程序并且应用程序调用其委托的 application:didFinishLaunchingWithOptions: 方法(如果已实现);它传入通知负载(用于远程通知)或本地通知对象(用于本地通知)。如果在运行 iOS 的设备上点击应用程序图标,应用程序会调用相同的方法,但不会提供有关通知的信息。

于 2013-02-11T00:58:53.827 回答
1

他们不能被迫打电话。只有监控。

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
}
于 2013-02-11T01:00:33.250 回答