0

StackOverflow でこの記事を読みました。これによると、静的変数は消去されます。

  1. クラスがアンロードされます
  2. JVM がシャットダウンする
  3. プロセスが死ぬ

しかし、アプリケーション (アプリケーション プロセス) を破棄/強制終了し、アプリケーションからプログラムですべての静的変数を消去する方法は?!

ありがとうございました、

ムール

UPD

これらの静的変数は、サーバーからいくつかのデータを読み取ることによって埋められます。テスト ワークフローは次のとおりです。

  1. アプリケーションを起動します->静的変数が入力されます
  2. [戻る] ボタンを押してホーム アクティビティに移動します -> finish() が呼び出されます
  3. インターネット接続をオフにします(接続がないはずです)
  4. 次に、アプリケーションを再度開始します
  5. 静的変数はまだ入力されています

いくつかのアイデア?

アプリケーションのすべてのアクティビティを閉じる可能性はありますか? その場合、アプリケーションは「クローズ」されますか?

Ps。はい、それは静的変数を使用する最良の方法ではないことはわかっていますが、私はそのアプリケーションの作成者ではありません。バグを修正していくつかの新しい機能を追加しているだけです。

4

2 に答える 2

0

あなたの質問はすべて明確ではないので、私はあなたに2つのオプションを与えます:

A
アプリケーションをプログラムで終了する場合はfinish()、コード内のどこからでも呼び出すことができます。

B
単にデバイス上でアプリケーションを「手動で」強制終了したい場合は、次のようにします。

  • メニューをクリック
  • [設定]をクリックします
  • [アプリケーション]をクリックします
  • [アプリケーションの管理]をクリックします
  • リストからアプリを見つけて選択し、[強制停止]をクリックします

編集:
3番目のオプションもあると思いますが、これは、finish()確実に実行するために、呼び出しと一緒に実行する必要がある場合があります。

アクティビティでは、メソッドをオーバーライドすることもできますonDestroy()。実装内ではonDestroy()、静的変数のリセット(例:)など、必要なクリーンアップを実行できますnull

于 2010-10-20T09:44:39.930 に答える
0

静的変数を null に設定するのはどうですか?

于 2010-10-20T09:41:48.597 に答える