1

複数の画面を持つアプリケーションがあります。ABCD と D が外部アプリケーションを開く可能性があるとしましょう。

このすべてのアクティビティはデータ、配列リストを互いに共有し、Application クラスでそれへの参照を作成しました。(Application を拡張するクラスを作成し、マニフェストを参照しました。) したがって、これらはすべて arraylist の単一インスタンスを使用しています。A は最初の画面から arraylist を初期化し、他のユーザーがそれを変更する可能性があります。

問題は、エミュレータでこれをテストしても何も壊れないことです。しかし、「一部の」電話では、ナビゲーション arraylist の 3 つ以上の画面がヒープから消去されるだけです。どんなに小さいサイズでも。

4

3 に答える 3

0

シングルトン デザイン パターンを使用するか、オブジェクトを静的にします

Singleton 設計パターンを使用すると、次のことができます。

  • クラスのインスタンスが 1 つだけ作成されるようにする
  • オブジェクトへのグローバル アクセス ポイントを提供する
  • シングルトン クラスのクライアントに影響を与えることなく、将来的に複数のインスタンスを許可する
于 2011-10-21T04:27:15.693 に答える
0

singletonArrayList にクラスを使用する

于 2011-10-21T04:18:57.483 に答える
-1

最初のように宣言ArrayListしてから、それを使用してください。staticActivity

于 2011-10-21T04:23:36.763 に答える