在销毁和重新创建活动时保存数据

时间:2014-01-18 09:36:46

标签: android android-activity android-preferences

我的onCreateOptionMenu设置(来自Activity),用于更新当前Activity的用户界面。

在更新首选项时启动首选项,调用活动需要在首选项基础上更新UI。

Snippet Preference如何调用: -

Intent in = new Intent(this, PrefsSecondaryActivity.class);
in.putExtra("caller", "sx");
startActivityForResult(in, SECSETTINGS);

抓住以获取UI更新

if (requestCode == SECSETTINGS) {
Intent intent = getIntent();
finish();
startActivity(intent);
}

我曾经使用上面的代码片段重新创建该活动。在onCreate()的{​​{1}}内。我检查了首选项名称 - 值对并更新了完全正常工作的用户界面。

如何在销毁和重新创建活动时存储该活动内的值?

因为我正在销毁和重新创建活动,这些活动会使整个新活动内部没有任何值。

我尝试在调用首选项时设置Activity,并在捕获onSavedInstanceState()

时调用onRestoreInstanceState()

“首选项”中的设置值可以很好地更改SLOC。所以现在不是最好的方式。

欢迎任何建议。

1 个答案:

答案 0 :(得分:0)

我就是这样做的(我在我的Activity中声明了一些静态变量):

@Override
protected final void onRestoreInstanceState(final Bundle inState)
{
    // Restore the saved variables.
    isChartShown = inState.getBoolean("chart", false);
    qIndex = inState.getInt("index");
    scores = inState.getIntArray("scores");
}
@Override
protected final void onSaveInstanceState(final Bundle outState)
{
    // Save the variables.
    outState.putBoolean("chart", isChartShown);
    outState.putInt("index", qIndex);
    outState.putIntArray("scores", scores);
}

此代码适用于我。我用它来保存一些用于在旋转时保持值的状态变量。

<强> [编辑]

否则,如果您强制完成应用,那么您将选择共享偏好
只需在完成之前保存您的值,然后在onCreate中重新加载它们。