40

アプリ (App1) が別のアプリ (App2) を起動した後にシステムによってシャットダウンされたときに、アプリ (App1) が正しく動作することを確認しようとしています。この動作をシミュレートまたは強制する方法はありますか?

App2 の実行中にメモリ警告をシミュレートするようにシミュレーターに指示しても、App1 がフォアグラウンドに戻るまで何も実行されません。デバッガーから App1 を強制終了すると、同じ一連のアプリ イベントがシミュレートされますか?

編集:ファイルを処理するために2番目のアプリを起動すると、私のアプリはバックグラウンドに配置されます。次に、この 2 番目のアプリがアプリを再起動します。2 番目のアプリの実行中にシステムがシャットダウンしたときに、アプリが正しく動作することを確認しようとしています。

4

4 に答える 4

32

iOS 14.5 以降

デバイスで[設定] - [開発者] - [アプリの高速終了] を有効にします。

設定 - 開発者 - 高速アプリ終了のスクリーンショット

これにより、アプリがバックグラウンドになっているときにアプリが中断されるのではなく、終了されます。これは、主に状態復元ロジックのテストに役立ちます。


iOS 14.4 以前

他の回答が指摘しているように、アプリを強制終了するか、デバッガーを停止することで、アプリをすぐに終了できます。このような場合、アプリは警告を受けません。

メソッドをテストする場合は、.plist でapplicationWillTerminateに設定UIApplicationExitsOnSuspendしてからYES、アプリを切り替えるか、ホーム ボタンを押します。キーを文字列「YES」ではなくブール値に設定してください。

于 2013-02-19T23:22:34.253 に答える
13

はい、アプリが既にバックグラウンドにある場合。バックグラウンドでシステムによって強制終了されたアプリは、警告なしで終了します。アプリ デリゲート メソッドは呼び出されず、状態の変更も行われません。これは、アプリがバックグラウンドで実行されているときにデバッガーを停止した場合とまったく同じです。(これは、シミュレーターのホームボタンまたは Cmd-Shift-H をクリックして、アプリを既にバックグラウンドに置いていることを前提としています)

(@Inafziger が指摘しているように、シミュレーターのインターフェイスを使用して実行中のアプリを強制終了することで、同じ効果を得ることもできます。)

于 2013-02-19T23:16:41.880 に答える
7

次のことができるはずです。

  • ホームボタンをタップすると、ホーム画面に移動します
  • ホームボタンを 2 回タップします (シミュレーターでキーボード ショートカットを使用します)。
  • アイコンが揺れ始めるまで、下部のアイコンを長押しします。
  • 破線の円をタップし-てメモリから削除します

これにより、バックグラウンドなどに移行するためのアプリ デリゲート メソッドが提供されます。これは、iOS 6 以下でどのように機能するかです。

于 2013-02-19T23:17:16.687 に答える