保持活动之间的状态

时间:2014-05-28 14:35:36

标签: android android-activity

我有两个不同的活动,ActA是我的主要活动,还有ActB。我通过菜单语音从ActA进入ActB。如果我按下ActB中的后退按钮(软件或硬件),应用程序将返回ActA,保留此活动中的先前状态。如果我按下活动栏中的向上按钮,ActA将重置其状态。我怎样才能防止这种情况发生?

不知道这是否有用,但这是一些代码: 活动A

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.

    switch (item.getItemId()) {
        case R.id.action_save:
            startActivity (new Intent (this, Save.class));
            return true;
        case R.id.action_about:
    }
    return false;
    }

活动B的清单:

<activity
        android:name="com.myapplication2.app.Save"
        android:label="@string/title_activity_save"
        android:parentActivityName="com.myapplication2.app.MainActivity" >
        <meta-data
            android:name="android.support.PARENT_ACTIVITY"
            android:value="com.myapplication2.app.MainActivity" />
    </activity>

1 个答案:

答案 0 :(得分:1)

添加此开关案例:

switch (item.getItemId()) {
        case android.R.id.home: finish(); return true;
 }

它的工作方式,默认情况下,向上(android.R.id.home)会使用相同的Activity来调用您的Intent,具体取决于您处理onCreateonResume的方式可能是您重新创建视图的情况。如果更改Up行为以匹配Back,则保留状态。

您不需要android:parentActivityNamemeta-data,只需添加

即可
getActionBar().setDisplayUseLogoEnabled(false);
getActionBar().setDisplayHomeAsUpEnabled(true);

您生命周期代码的某处。