0

アプリに小さなバグがあります。My App は、アプリの実行中に特定の時間に通知を表示し、ボタンを切り替えるたびにすべての通知をキャンセルします。私の問題は、ユーザーが iOS のマルチタスク機能を使用してアプリを閉じるたびに、通知がまだ表示されることです。

動作しない次のコードを追加しようとしました:

- (void)applicationWillTerminate:(UIApplication *)application
{
    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
    [[UIApplication sharedApplication] cancelAllLocalNotifications];
}

問題は、アプリの実行中にアプリが通知を表示する必要がありますが、アプリが終了したときに通知を表示しないことです。上記のコードが機能しないのはなぜですか?

4

2 に答える 2

0

アプリがapp-changerに表示されているからといって、まだ実行中であるとは限りません。いつでも閉じることができます。アプリを閉じるOSとアプリを閉じるユーザーを区別することはできません。

おそらくボタンが解決策になるでしょうか?すべての通知をキャンセルするボタン?または、実際のバックグラウンドタスク(約5分間続く可能性があります)を実行し、その後すべての通知を停止します。または、次の5〜10分間の通知をスケジュールするだけで、それだけです。

何のために使っていますか?

于 2012-10-27T13:52:42.300 に答える
0

正解は、これは現在マルチタスク アプリでは実行できないということです。1 つの解決策は、info.plist にフラグを設定して、ユーザーが別のアプリに切り替えたときにアプリを強制終了することを宣言することです。これにより、willTerminate メッセージが表示されます (ただし、その後強制終了されます)。

このトピックには膨大な数のスレッドがあり、終了したバックグラウンド アプリは willTerminate メッセージが表示されないことを示す Apple ドキュメントを引用しています

私にとって、これは、「修正できない」解決策で開いているバグレポートを閉じることができるようになったことを意味します:-)

于 2012-10-27T17:26:01.473 に答える