6

iOSアプリケーションがバックグラウンドで実行されている場合、次のように正常に応答します。

 - (void)application:(UIApplication *)application didReceiveLocalNotification:
    (UILocalNotification *)notification

ただし、アプリケーションを閉じるとクラッシュし、SIGKILLエラーが発生します。

通知を受け取ったときにメソッドが閉じている場合、アプリ内でメソッドを実行するにはどうすればよいですか?

4

2 に答える 2

6

アプリを閉じると、通知をクリックするよりも通知を受け取ると、通知- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptionsメソッドが呼び出されます。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

  UILocalNotification *localNotif = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey];

  if (localNotif) 
 {
  // code here.
 }
于 2012-11-19T05:07:39.463 に答える
1

ローカル通知を受信した場合、アプリでメソッドを実行することはできません。通知は、アラート、アイコンバッジ番号、およびサウンド(<30秒)の任意の組み合わせを提供できます。

メソッドが再びフォアグラウンドになったら、通知またはその他の方法でメソッドを実行できます。

アプリがバックグラウンドにある場合、applicationWillEnterForeground:再開する前に呼び出します。このメソッドをオーバーライドして、通知後に必要なものをすべて処理できます。オーバーライドapplicationDidEnterBackground:して、アプリが実際にバックグラウンドに入るタイミングを決定できます。

メソッドapplication:didReceiveLocalNotification:は、アプリが通知を受信したがフォアグラウンドにあるときに呼び出されます。アプリがフォアグラウンドにある場合、アラート、アイコンバッジ番号、およびサウンドはトリガーされません。

于 2012-11-19T05:46:28.700 に答える