0

私は Android アプリケーションを構築しており、Splash アクティビティ中に入力する静的配列リストを使用して、アプリケーション全体で使用できるようにしています。しかし、アプリケーションを終了して再入力すると、この配列は以前の内容でいっぱいのままです。何が起こっているのですか?

4

2 に答える 2

5

静的な場合、それを保持するクラスがメモリから完全にアンロードされた場合にのみ削除されます。それはおそらくすぐには起こりませんが、将来のある時点で起こります。もう必要ないことがわかったら、手動でクリアする必要があります。または、データを別の場所に保存します。

アクティビティを終了するだけでなく、ADB を介してプロセスを実際に強制終了すると、データが失われることに気付くでしょう。

于 2013-01-03T17:47:41.780 に答える
1

詳細がないと確実に言うのは難しいですが、どこかにコンテキストへの参照がある可能性があるため、アプリケーションが閉じられることはありません。したがって、再実行すると、同じオブジェクトを使用しているのと同じデータが表示されます。

これは、電話で実行中のプロセスの部分に移動するか、adbを介して、まだそこにあるプロセスを確認することで確認できます。通常の理由は、ドローアブルがあり、終了する前にコールバックをクリアしないことです。これにより、コンテキストへの参照が保持され、アプリケーションへのリンクが保持されます。静的変数がアクティビティで宣言されている場合、それはそこにとどまっていることを意味します。

于 2013-01-03T17:52:05.667 に答える