0

デバイスのホームボタンをクリックしたとき。これは私のデリゲートの一部です:

- (void)applicationWillResignActive:(UIApplication *)application
{
    NSLog(@"resign active");
    //[[NSThread mainThread] cancel];
}
- (void)applicationDidEnterBackground:(UIApplication *)application
{
    NSLog(@"enter background");
    //[[NSThread mainThread] cancel];
}

- (void)applicationWillEnterForeground:(UIApplication *)application
{
    NSLog(@"enter foreground");
    //[[NSThread mainThread] cancel];
}
- (void)applicationWillTerminate:(UIApplication *)application
{
    NSLog(@"terminate");
    //[[NSThread mainThread] cancel];
}

ホームボタンをクリックしたときに呼び出されるメソッドを理解するために NSLog を使用しています。これはコンソールに出力されます。

2012-01-20 15:55:55.853 MyApp[5955:11f03] enter background
2012-01-20 15:55:55.855 MyApp[5955:11f03] terminate
Program ended with exit code: 0

そのため、バックグラウンドでアプリをクリックすると (ホーム ボタンを 2 回クリック)、最初の画像と最初の uiviewcontroller を表示して再び起動します。

どのようにして解決し、ユーザーがホームボタンをクリックしたときに一番上にあった uiviewcontroller からアプリを再開できますか?

4

1 に答える 1

4

info.plist ファイルを確認し、「アプリケーションはバックグラウンドで実行されません」がチェックされていないことを確認してください。

下の画像は「オン」の状態のオプションを示しているため、ユーザーがホームボタンを押すと、アプリは効果的にファイナライズされます。

info.plist 構成

Apple がそのオプションを説明する方法は次のとおりです。

UIApplicationExitsOnSuspend

UIApplicationExitsOnSuspend (Boolean - iOS) は、終了時にアプリケーションをバックグラウンドに移動するのではなく、終了する必要があることを指定します。iOS SDK 4.0 以降にリンクされたアプリケーションには、このキーを含め、その値を YES に設定して、バックグラウンド実行とアプリケーションの一時停止に自動的にオプトインされるのを防ぐことができます。このキーの値が YES の場合、アプリケーションは終了し、バックグラウンドに移動する代わりにメモリからパージされます。このキーが存在しないか、NO に設定されている場合、アプリケーションは通常どおりバックグラウンドに移動します。

このキーは、iOS 4.0 以降でサポートされています。

于 2012-01-20T15:04:25.533 に答える