崩溃后创建新实例

时间:2014-04-08 17:57:05

标签: android

当我的应用程序在我的“D-Activity”中崩溃时,我遇到了问题。

  

MainActivity - >活动 - > B-活性 - > C-活性 - > d-活性

我在MainActivity中创建实例GlobalClass。

public static synchronized GlobalClass getInstance()
{
    if(instance==null)
    {
        instance=new GlobalClass();         
    }
    return instance;
}    

例如: 我的应用程序在“D活动”中崩溃。 Android从B Activity重新启动我的应用程序,但我在GlobalClass中丢失了数据。有很多字段String和ArrayList。我如何让他们回来?

1 个答案:

答案 0 :(得分:0)

例如,您可以使用GlobalClass库将JSON实例转换为Gson。首次实例化GlobalClass后,您可以将其JSON表示保存到SharedPreferences,每次需要时,如果它为空,您可以尝试从{SharedPreferences读取它1}}。

保存到SharedPreferences的示例:

/**
 * @return This session's config data.
 */
public Config getConfig() {
    Config config = new Gson().fromJson(mPreferences.getString(KEY_CONFIG, null), Config.class);
    return config;
}

/**
 * Save this session's config data.
 * 
 * @param config
 *            Config data.
 */
public void setConfig(Config config) {
    mPreferences.edit().putString(KEY_CONFIG, new Gson().toJson(config)).commit();
}

获取/设置全局值的示例:

/**
 * @return Application configuration parameters.
 */
public static Config getConfig() {
    if (sConfig == null)
        sConfig = sPreferences.getConfig();
    return sConfig;
}

/**
 * Set application configuration parameters.
 * 
 * @param config
 *            Config to set.
 */
public static void setConfig(Config config) {
    sPreferences.setConfig(config);
    sConfig = config;
}