2

アクティビティ間で複雑なデータをメモリに保持するアプリケーションがあります。

今のところ、私はゲッターとセッターで使用するSingletonクラスを使用しています。SharedPreferences

私が欲しいもの:私のアプリケーションがライブで最近のアプリに表示されている限り、クラスがリリースされないようにしたり、結果なしにこれを別の方法で実現する方法を見つけたりしたいです。

  • だから私は疑問に思っていました、私にはもっと良い方法がありますか?
  • サービスはもっと良いでしょうか?
  • もしそうなら、私はそれを開始および/またはバインドする必要がありますか?
4

1 に答える 1

3

サービスを利用する場合、バインドを解除するとサービスが停止する可能性があるため、バインドしないでください。

静的オブジェクトを作成して、カスタムApplicationクラスに作成できます。したがって、アプリケーションが有効である限り、オブジェクトは強力な参照によって保持されます。

または組み合わせて、シングルトンクラスを使用しますが、ガベージコレクション(GC)を防ぐためにアプリケーションクラスに参照を格納させます

チャット後:

独自のプロセスで実行されるサービスは、構築できる最も永続的なものである必要があります。ただし、クロスプロセスブリッジであるAIDLを介してサービスと通信する必要があります。これにより、通信が高速の場合にパフォーマンスが向上します。

于 2012-11-29T11:53:34.693 に答える