使用此代码时,我调用Next Activity。
代码
public void click_contact(View v)
{
Intent myIntent = new Intent(MainActivity.this, ContactActivity.class);
MainActivity.this.startActivity(myIntent);
overridePendingTransition (R.anim.slide_in_right, R.anim.slide_out_left);
finish();
}
所以"ContactActivity"是午餐。当按下设备内置的"后退"按钮时,上一个活动("MainActivity")将关闭。但我想重新启动这项活动。
删除finsh();在最后一行并尝试。然后,按下后退按钮,您将获得"主活动"。
希望它能帮助你。
重写backPress将启动新的意图。这不好!只是不要恰到好处地完成()。我想这应该会自动将你带到上一个活动。
这是您的代码
public void click_contact(View v){
Intent myIntent = new Intent(MainActivity.this, ContactActivity.class);
MainActivity.this.startActivity(myIntent);
overridePendingTransition (R.anim.slide_in_right, R.anim.slide_out_left);
finish();
}
为什么使用finish()
。通过使用finish,您将从活动堆栈中删除或删除活动(在您的情况下为MainActivity)。或者您可以说该活动不会添加到堆栈中。因此,在背按时将不会有任何活动要加载。所以不要使用finish()
只需使用
startActivity(new Intent(ContactActivity.this, MainActivity.class));
overridePendingTransition (R.anim.slide_in_right, R.anim.slide_out_left);
因此,通过删除finish,您的MainActivity将被添加到活动堆栈中,并在ContactActivity进行反按,它将自动加载您的MainActivity
仔细观察这个
您在MainActivity中删除了finish()
吗?
然后,检查启动MainActivity的意图上的FLAG。您可能使用了FLAG_NO_HISTORY
。这意味着当活动进入后台时,它将完成。
如果您想恢复MainActivity,那么您应该从代码中删除finish()。代码
public void click_contact(View v)
{
Intent myIntent = new Intent(MainActivity.this, ContactActivity.class);
MainActivity.this.startActivity(myIntent);
overridePendingTransition (R.anim.slide_in_right, R.anim.slide_out_left);
}
如果你想在ContactActivity中重新启动MainActivity,那么你应该在onBackPressed():中启动它
代码
@Override
public void onBackPressed()
{
Intent myIntent = new Intent(ContactActivity.this, MainActivity.class);
startActivity(myIntent);
super.onBackPressed();
}