我有一个 Android 应用程序,我在其中使用一个类来存储活动之间的静态数据,例如:
class Global
{
private static boolean mInitialized = false;
private static String mData = null;
public static void init()
{
mData = "something";
mInitialized = true;
}
public static boolean isInitialized()
{
return mInitialized;
}
public static String getData()
{
return mData;
}
}
所以在主要活动 onCreate 我做:
if( Global.isInitialized() == false )
Global.init();
然后启动其他活动,动作流程为:
MainActivity -> ActionActivity -> PluginActivity
Main 是我初始化 Global 类的地方,Action & Plugin 是我使用该类的 getData() 方法的地方。
现在在某些情况下,我得到了非常奇怪的行为......如果在 PluginActivity (例如 NullPointerException )中发生了意想不到的事情,则活动崩溃并且应用程序返回到启动它的 ActionActivity,但是,此时,在 onCreate 期间ActionActivity(应该在其中初始化 Global 类)我得到一个异常,因为 getData() 返回 null (并且 isInitialized() 为 false),因为 Global 类从未被 MainActivity 初始化。
那么,如果发生意外异常之类的事情,可以释放/清除像我的 Global 类这样的静态成员的对象吗?