iPod touchアプリケーションを実行していて、バックグラウンドで設定アプリケーションからデバイスの言語を変更し、そのアプリケーションをフォアグラウンドにしようとしています。アプリケーションが再起動し、バックグラウンドに入ったときにアプリケーションを離れた画面に表示されません。
これは、言語が変更されたときに設定アプリケーションからKILL信号が送信されるためですか?それは望ましい振る舞いですか?
iPod touchアプリケーションを実行していて、バックグラウンドで設定アプリケーションからデバイスの言語を変更し、そのアプリケーションをフォアグラウンドにしようとしています。アプリケーションが再起動し、バックグラウンドに入ったときにアプリケーションを離れた画面に表示されません。
これは、言語が変更されたときに設定アプリケーションからKILL信号が送信されるためですか?それは望ましい振る舞いですか?
言語を切り替えるとアプリが終了することになるとは知りませんでしたが、それは衝撃的ではありません。これは、ユーザーが望むものを取得するための非常に簡単な方法です。ただし、問題は言語の変更ではありません。問題は、終了の通知に正しく応答していないことです。バックグラウンドにいるときはいつでも終了する可能性があり、それに対処するのはあなたの仕事です。
アプリケーション デリゲートを実装する必要がありますapplicationWillTerminate:
(または、都合のよい場所で観察 できますUIApplicationWillTerminateNotification
)。これを受け取ったら、再起動したときの状態に戻るのに十分な情報を保存する必要があります。可能な限り、終了していないことをユーザーに見せる必要があります。通常、状態を保存する最も簡単な場所はNSUserDefaults
ですが、好きなメカニズムを使用できます。
アプリケーションの再起動の処理は、優れた iOS アプリケーションと「十分」を分ける要素の 1 つです。