アプリをバックグラウンドに入れた後、アクティビティに再開すると、別のアクティビティで設定された静的クラス変数がガベージコレクタによってリセットされ、値がゼロに設定されている可能性がありますか?Androidアプリの再開時にグローバル変数の値がリセットされましたか?
私は主なアクティビティでいくつかのpublic static int変数を使用し、それらをさまざまな他のアクティビティでグローバル変数として使用します。私はAndroidマーケットのデベロッパーコンソールでクラッシュレポートを受け取りました。ここで唯一の説明は、別のクラスのpublic static int変数の値を使用するアクティビティに再開するというものですが、その値は(不思議なことに?)ゼロになる。私はアプリが最初に始まったときに何かに設定されていたことを知っています。これはすべて可能ですか?
私の疑惑が正しければ、アプリケーションをバックグラウンドに置いたときにグローバル変数の値を保持するために推奨される方法は何ですか? OnPause()のSharedPreferencesに保存するか、onSaveInstanceStateなどを使用しますか?
私はプロセスがシステムによって終了できることを知っています。それは問題ではありません。問題は、主なアクティビティではないアクティビティにアプリが再開したときです。 – Anders
@アンダー:ユーザーが最近のタスクでアプリケーションを起動した場合、制御はユーザーが最後に行ったアクティビティに戻ります。 – CommonsWare
スタックトレースからは、システムのJavaファイルのみが表示されます。 。これは、アプリがバックグラウンドから再開したときにクラッシュが発生したと思う。私の主なアクティビティにはないスピナーに値が設定されているとクラッシュするようです。スピナーで使用されるArrayListのサイズは、メイン以外のアクティビティでonCreateで作成され、メインアクティビティ内のグローバル変数からそのサイズを使用します。その値はゼロだったようです。 – Anders