我只想清除Previous Activity的所有数据。意味着当我回到之前的活动时,它需要再次调用所有asyncatsk作为一个全新的活动。 因为当我进入下一个活动时,我正在对数据序列进行一些更改,但我会回来,我需要为原始数据调用agin asynctask
所以任何人都有这个想法?
是的,我只想澄清下面的功能不起作用
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
答案 0 :(得分:0)
如果您想以任何方式重新初始化活动,只需在onResume()中重置所需的值即可。
如果那不是你想要的,请澄清你的问题。
答案 1 :(得分:0)
根据您的具体情况,有几种选择。
首先,您可以尝试清除savedInstanceState,如下所示:
public void onCreate(Bundle savedInstanceState){
super.onCreate(null);
}
或者像这样:
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.clear();
}
其次,如果你希望在"反向压制"事件, 您可以覆盖onBackPressed以创建活动的新实例,而不是默认返回具有已保存状态的活动。
@Override
public void onBackPressed(){
//super.onBackPressed(); // EXCLUDE this line
Intent intent = new Intent(this,TheNextActivity.class);
startActivity(intent);
}
@iguarna的答案也值得一试,这完全取决于具体情况以及你希望完成的事情