私は Android アプリケーションを構築しており、Splash アクティビティ中に入力する静的配列リストを使用して、アプリケーション全体で使用できるようにしています。しかし、アプリケーションを終了して再入力すると、この配列は以前の内容でいっぱいのままです。何が起こっているのですか?
1005 次
2 に答える
5
静的な場合、それを保持するクラスがメモリから完全にアンロードされた場合にのみ削除されます。それはおそらくすぐには起こりませんが、将来のある時点で起こります。もう必要ないことがわかったら、手動でクリアする必要があります。または、データを別の場所に保存します。
アクティビティを終了するだけでなく、ADB を介してプロセスを実際に強制終了すると、データが失われることに気付くでしょう。
于 2013-01-03T17:47:41.780 に答える
1
詳細がないと確実に言うのは難しいですが、どこかにコンテキストへの参照がある可能性があるため、アプリケーションが閉じられることはありません。したがって、再実行すると、同じオブジェクトを使用しているのと同じデータが表示されます。
これは、電話で実行中のプロセスの部分に移動するか、adbを介して、まだそこにあるプロセスを確認することで確認できます。通常の理由は、ドローアブルがあり、終了する前にコールバックをクリアしないことです。これにより、コンテキストへの参照が保持され、アプリケーションへのリンクが保持されます。静的変数がアクティビティで宣言されている場合、それはそこにとどまっていることを意味します。
于 2013-01-03T17:52:05.667 に答える