当我按下我的活动时,它会调用onSaveInstanceState()
并保存“bundle savedInstanceState”,这是正确的。
但我想破坏它或将其设置为空仅当我按下后退按钮或销毁活动时
我的活动中只需onSaveInstanceState()
即可进行配置更改。
我想我需要使用onBackPressed()
,但我应该把它放在哪里???
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
}
修改:
假设当我点击列表中的项目时,我有一个活动包含一个列表,我上面提到的活动将开始。
我的第二个活动是主/详细流活动,当我点击此活动列表中的项目时,它将更新详细信息的片段(这里是一个viewpager),它将保存当前选择的列表。< / p>
现在,当我在第二个活动上按下后退按钮时,它会返回到列表活动,再次,如果我单击一个列表项,它将转到第二个活动,并选择我之前的选项。 (它通过后台堆栈来保存选择)
但是我注意到它与saveinstancestate无关,我的第二个活动不会通过后退按钮销毁它会分离然后附加像片段一样。
我想在按下后退按钮时完全破坏第二个活动。
编辑2:
当我甚至通过后退按钮关闭我的应用程序并再次启动它,然后进入第二个活动时,我会看到我的上一个状态和我点击的项目。 (我在列表中使用了setChoiceMod(... single))
感谢您的帮助。
答案 0 :(得分:0)
应该是这样的:
@Override
public void onBackPressed(View v){
onBackPressed();
}
});
答案 1 :(得分:0)
我注意到我在第二个活动中定义的变量是通过后台堆栈保存它们的值(我在活动中改变了),甚至关闭应用程序也不会删除它们。
变量:
static int mcurchoice ;
static int mcurtab ;
我通过在onBackPressed()
方法中将它们设置为0来解决我的问题:
mcurchoice = 0;
mcurtab = 0;
有人可以在评论中解释他们如何通过活动的销毁来保存他们的价值。?