3

Androidアプリ開発を学んでいます。活動がシステムによってどのように管理されているかについて読んでいます。

このドキュメントを読むことによって。ここに混乱があります。

  1. 3 つのアクティビティ A1、A2、A3 を含むアプリ A (ホーム画面から) を作成します [これはタスク A です]
  2. 3 つのアクティビティ B1、B2、B3 [これはタスク B] を使用して (ホーム画面から) アプリ B を作成します。ここで、A1 と B1 はそれぞれアプリ A と B のスタックの一番上にあります。

ドキュメンテーション システムは、アクティビティをプッシュおよびポップするだけです (スタックには意味のある並べ替えはありません)。ただし、十分なメモリが利用できない場合、システムはメモリを再利用できると述べています。また、削除するアクティビティを選択すると、システムは常にバックグラウンドにあるアクティビティを選択します。それで、その削除アクティビティ A3 を言います。しかし、A3 はスタックの一番下にあります。アプリ A のスタックを並べ替えずに A3 を削除するにはどうすればよいですか?

私の質問が明確であることを願っています

ありがとうございました、

4

2 に答える 2

1

アクティビティがメモリから削除されても、バックスタックは変更されません。

ただし、ユーザーが[戻る]ボタンを押して、再利用されたアクティビティに戻ると、特に保存していない(およびの引数onSaveInstanceState()からリロードしていない)状態はすべて失われます。savedInstanceBundleonCreate()

于 2013-03-08T17:31:40.910 に答える
0

あなたが正しく指摘したように、Androidシステムはスタックを並べ替えません。これは、スタック上の個々のアクティビティではなく、アクティビティを含むプロセスが終了するプロセスライフサイクルに従います。また、デフォルトでは、すべてのアプリケーションは、アクティビティスタックが維持される個別のプロセスであることを忘れないでください。したがって、アプリAとアプリBのアクティビティスタックは分離され、独立しています。

たとえば、タスクAはA1、A2、およびA3アクティビティのバックグラウンドにあります。タスクAはプロセスです。Androidがメモリを再利用する必要がある場合、AndroidはすべてのアクティビティA1、A2、A3を含むプロセスタスクAを終了します。したがって、現時点でタスクAのスタックの最上位にあるアクティビティは関係ありません。

于 2013-03-08T17:44:37.657 に答える