2012-11-19 26 views
6

私のiOSアプリケーションは、それが起動クローズのiOSアプリのローカル通知

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

に罰金応答しますが、アプリケーションが閉じているときに、それがクラッシュしSIGKILLエラーを与えるバックグラウンドで実行されているから。

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

答えて

1

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

通知を使用して、または他の方法でフォアグラウンドに戻ったときにメソッドを実行できます。

アプリがバックグラウンドになると、再開する前にapplicationWillEnterForeground:が呼び出されます。このメソッドをオーバーライドして、通知後に必要な処理を行うことができます。 applicationDidEnterBackground:を上書きして、アプリが実際に背景に入るタイミングを判断できます。

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

5

アプリが閉鎖されているときは、通知をクリックしたときより通知を受け取ったときに- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptionsメソッドが呼び出されます。

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

    UILocalNotification *localNotif = [launchOptions objectForKey:UIApplicationLaunchOptionsLocalNotificationKey]; 

    if (localNotif) 
{ 
    // code here. 
} 
関連する問題