4

開発者ガイドで述べられているように、「アプリ プロセスが強制終了された」および「ユーザーがアクティビティに移動した」後に、アクティビティを復元できます。まず、私はそのようなことが起こったのを見たことがありません。プロセスが強制終了されたときにアクティビティに「戻る」ことができないようです。プロセスが終了した後、アクティビティは単にスタックから削除されます。

そのようなことが起こるとしたら、それはどのように正確に起こるのでしょうか?

そして、私は奇妙だが良いことを見ました:別のアプリActivity A1を開始するものがあります。Activity A2これA2がフォアグラウンド アクティビティです。メモリが少なくなると、少なくともエミュレータ(RAMを簡単に使い果たすことができる場所)A2では、A1.

私が恐れているのは、たとえば次のようなものです。私のアプリにはスタックに 2 つのアクティビティがあり、それらをA0と と呼びますA1。そしてA1、再び、Activity A2別のアプリの起動。がA0起動しようとすると、データ オブジェクトへの参照がA1与えられます。A2 がフォアグラウンドにあるときにandのプロセスが強制終了されると、も失われます。A2 が終了したら、少なくとも復元する必要があるようです。したがって、 の復元を処理する必要があります。さらに、A1 はまだ死んでいる人に、復元された . これは複雑ですか、それとも間違った方向に歩いたのでしょうか?A1DA0A1DA1A1DA0D

4

1 に答える 1

7

システムは、フォアグラウンド アプリを維持するためにできる限りのことを行います。

アクティビティのIntent起動に使用された は、プロセスが強制終了されようとしているときにシステムによって保存されます。

このようにして、ユーザーが強制終了されたアプリに戻ると、アプリが復元され、同じアプリが起動さIntentれて、含まれている可能性のあるすべての追加機能を含むアクティビティが起動されます。

これはIntent、アクティビティを起動するために に渡すデータは、アクティビティが復元されたときにも存在することを意味します。

気付かないかもしれませんが、Android は日々の使用でプロセスを強制終了して再作成します。これが、プラットフォームが提供するシームレスなマルチタスクの要点です。

「開発」設定で「アクティビティを保持しない」オプションを常にオンにして、アプリをテストする必要があります。

于 2012-08-13T05:26:15.527 に答える