5

Application クラスを拡張してグローバル ストレージを提供する手法については承知しています。ただし、私の場合、ライブラリ関数のクラスを作成しているため、クラスのユーザーにこのパスを強制したくありません。いくつかの静的クラス変数が必要です。これらが安全ではない可能性があるという参照を StackOverflow で渡すのを見てきました。ただし、同じクラスを使用して 2 つの異なるアプリケーションを試してみましたが、マルチウィンドウ モードの Galaxy S3 で両方のアプリケーションを並べて実行しても、静的クラス変数は別々のままです。

したがって、Android の内部構造について深い知識を持つ人は、これが安全かどうかを確認できますか。

安全でない場合は、入れ子になったクラスで変数をラップし、アプリケーション パッケージ名をキーとして使用して、それらをシリアライズ可能な静的 HashMap に追加できます。これにより、彼らは安全になります。ただし、これが必要ない場合は、実行しないほうがよいでしょう。

4

4 に答える 4

5

アプリケーションのライフサイクルの紆余曲折を経て永続的なデータを保存することが目標である場合は、静的変数を使用しないことをお勧めします。このアプローチの明らかな問題は、オペレーティング システムがメモリを再利用することを決定したとき (つまり、画面がスリープ状態になったとき、または別のアプリケーションがメモリを集中的に使用するタスクを開始したとき)、システムによって簡単にガベージ コレクションされる可能性があることです。「保存」しようとしているデータの種類はわかりませんが、代わりにSharedPreferencesまたはに状態を保存することをお勧めします。SQLiteDatabase

于 2013-05-24T23:08:49.360 に答える