对于存储在我的应用程序运行时的数据我有两个静态变量的类:的Android NullPointerException异常与静态对象
public class App {
public static ClementineConnection mClementineConnection = null;
public static Clementine mClementine = null;
}
那些在第一个活动的onCreate
方法进行初始化。此活动除了根据状态启动其他活动(是否将应用程序连接到服务器)之外什么也不做。
如果应用程序处于空闲状态或在后台运行并发出通知,则在访问其中一个静态变量时,有时会在其他onCreate方法中发生NullPointerException。不知何故,他们收集垃圾。 该应用程序有一个线程在后台运行,所以我认为必须始终有一个参考。
你知道我怎样才能防止垃圾收集这些静态变量?应用程序连接到服务器时,信息必须可用。创建一个新的实例(例如Clementine.getInstance()
)不是一个选项。
如果你想看看代码:https://code.google.com/p/clementine-remote-android/source/browse/
尝试使静态最终 –
@chintankhetiya他不能让它成为'最终',因为他在其他活动中分配 – TheWhiteRabbit