ユーザーに情報を保持する静的インスタンスを持つAndroid Javaクラスがあります。しかし、ユーザーが私のアプリケーションを使用しているまれなケースでは、静的インスタンス内の変数の1つがしばらく後にnullになります。このJavaクラスはグローバルです(アクティビティにはアタッチされていません)。これを引き起こす原因は何ですか?Java静的変数がnullになる
EDIT:この変数は、アプリケーションの起動時以外は変更されません。私はすでにそれを呼び出す関数が複数回呼び出されることはないことを確認しています(adb logcatは呼び出されたというログを追加したときにそのことを証明します)。ユーザーがスリープ状態に入ると、システムが必要とするか、またはメモリをクリアし、電話をすることができます場合、これは一般的に起こる
class UserCore
{
class UserData
{
int ID;
string Name;
}
public UserData User;
public static UserCore Instance = new UserCore();
public void Login()
{
Log.d("User", "Logging in");
new Throwable().printStackTrace();
User = null;
//Fetch user data
User = new UserData();
User.ID = ...
User.Name = ...
}
....
}
ここにコードが必要です。 – Woot4Moo
アプリが再起動しますか? Androidアプリは時々外出します。 –
おそらくどこかでnullになるでしょう:) – Maroun