0

難しい質問があります。私のアプリでは、ユーザーはアプリをバックグラウンドで実行するかどうかを変更できます。はいの場合 - ユーザーがそれを殺すまで動作するはずです。そうでない場合は、ユーザーがホームボタンを押すまで機能し、トップボタンで画面をロックした後に機能する必要があります。

そのため、「アプリケーションはバックグラウンドで実行されません」という plist ファイルの行があります。「はい」にすると、ホームボタンが押されるまでアプリが実行され、画面をロックした後も動作します。完全。「いいえ」にすると、アプリを殺すまで常に実行されます。完全。

しかし、アプリから plist の値を変更することはできないと思います。さて、私はapplicationDidEnterBackgroundでそれを行う方法を見つけました:

if (userDontWantItRunInBackground) { exit(0); }

しかし、これには問題があります (ただし、Apple は推奨していません)。

if "application does not run in background" = YES:

applicationDidEnterBackground is NOT CALLED on locking the screen

if "application does not run in background" = NO:

applicationDidEnterBackground is CALLED on locking the screen

意味がない!これにより、ロックされた画面でアプリを実行できなくなります。

4

1 に答える 1

0

iOS 4 では、アプリが必要に応じてアイドル時間のスリープを回避することはできません。

   [[UIApplication sharedApplication] setIdleTimerDisabled:YES];

iOS でのバックグラウンド実行に関する詳細情報は次のとおりです。

ここに画像の説明を入力

もっと:

于 2013-03-23T16:46:02.053 に答える