アプリケーション プロセスはいつでも破棄される可能性があるため、これらの静的インスタンスは実際にガベージ コレクションされる可能性があります。
これらの静的変数をカスタム Application オブジェクトに配置すると、アプリケーションが (再) 作成されるたびにアプリケーションの onCreate 関数で初期化しない限り、同じことが適用されます。
SharedPreferences または SQLite データベースを使用して永続データを追跡する必要があります。
これらの変数が複雑すぎて格納できない場合は、シングルトンの使用を検討することをお勧めします (Application のサブクラス化は以前ほど推奨されていません)。
public class MySingleton {
public static MySingleton getInstance(Context context) {
if (instance==null) {
// Make sure you don't leak an activity by always using the application
// context for singletons
instance = new MySingleton(context.getApplicationContext());
}
return instance;
}
private static MySingleton instance = null;
private MySingleton(Context context) {
// init your stuff here...
}
private String id = null;
private String uniqueId= null;
private String token = null;
private String sessionId = null;
}