1

私のアプリケーションには、約 12 個のアクティビティがあります。ただし、これらのほとんどにはいくつかのショートカット ボタンがあるため、ユーザーはアプリのどこからでも最も重要なボタンを開始できます。つまり、ユーザーはアプリ内をジャンプして、アクティビティ スタックをアクティビティでいっぱいにすることができます。スタックが提供する履歴機能が必要なため、この動作を変更することはできません (そのため、noHistory オプションだけを使用することはできません)。

明らかに、このメモリリークの可能性に対して何かしたいと思います。スタックのサイズが特定の数より大きい場合、アクティビティ スタックの一番下からエントリを削除することは可能ですか? では、スタックは最新の X (たとえば 30) アクティビティのみを記憶するのでしょうか?

ありがとう

4

2 に答える 2

3

明らかに、このメモリリークの可能性に対して何かしたいと思います。

メモリリークの可能性は?Android は、メモリを再利用するために必要に応じてアクティビティを破棄します。ユーザーが破棄された 1 つの Android に戻るボタンを押すと、元のアクティビティで再作成され、Intent入力した Bundle が 経由で渡されますonSaveInstanceState()

スタックのサイズが特定の数より大きい場合、アクティビティ スタックの一番下からエントリを削除することは可能ですか? では、スタックは最新の X (たとえば 30) アクティビティのみを記憶するのでしょうか?

私が知っているわけではありません。繰り返しますが、それは必要ありません。

于 2011-02-20T00:54:32.580 に答える
1

履歴スタックは Android ランタイムによって管理されます。あなたはそれについて心配する必要はありません。

ただし、以前にアクティビティを起動して前面に表示したい場合は、適切なインテント フラグ(ACTIVITY_FLAG_REORDER_TO_FRONT など) を設定することでこれを行うことができます。そうすれば、不要なときにスタックにアクティビティが重複することはありません。これは、歴史の年表/直線的な性質に影響を与えることに注意してください。

于 2011-02-20T05:50:01.417 に答える