我有两个不同的活动,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>
答案 0 :(得分:1)
添加此开关案例:
switch (item.getItemId()) {
case android.R.id.home: finish(); return true;
}
它的工作方式,默认情况下,向上(android.R.id.home)
会使用相同的Activity
来调用您的Intent
,具体取决于您处理onCreate
和onResume
的方式可能是您重新创建视图的情况。如果更改Up行为以匹配Back,则保留状态。
您不需要android:parentActivityName
或meta-data
,只需添加
getActionBar().setDisplayUseLogoEnabled(false);
getActionBar().setDisplayHomeAsUpEnabled(true);
您生命周期代码的某处。