クラスAで変数vを使用しますが、クラスBに移動してからクラスAに戻ると値が変わります。クラスAに戻ると、値は初期値です。final
変数に追加するstatic
か、その値を保持するように修正できますか?
ありがとう
Activity
Android のクラスについて話している場合、解決策は を使用することstatic
です。これは、新しいアクティビティが起動されるたびに、起動アクティビティが「一時停止」される (そのonPause()
メソッドが呼び出される) ためです。新しく起動された で「戻る」ボタンが押されるとActivity
、スタック内の前のアクティビティが再開され、そのonResume()
メソッドが呼び出されます。
一方、static
変数は一度だけ初期化されます。また、変数の 1 つのコピーがクラス/アクティビティのすべてのインスタンスで共有されるため、静的を使用するもう 1 つの利点は、他のクラスの値を変更できることです。
あなたの場合、おそらくonResume()
メソッドで非静的変数を初期化しているため、別のアクティビティから戻るとその値が再初期化されます。
プレーンな Java クラスを使用して別のクラスから関数を使用した後、コントロールを返すときに同じことが発生するべきではありません。