为了在我的应用程序中存储运行时数据,我有一个包含两个静态变量的类:
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/