使用此代码我称之为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')将关闭。 但我想重新启动这项活动。
答案 0 :(得分:1)
删除finsh();在最后一行并尝试。然后按下后退按钮即可获得主要活动。
希望它会对你有所帮助。
答案 1 :(得分:0)
覆盖backPress将启动新意图。这是不好的!只是不正确完成()。我想这应该会自动转到上一个活动。
答案 2 :(得分:0)
这是你的代码
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()
。通过使用完成,您将从活动堆栈中移除或活动(在您的情况下为 MainActivity )。或者您可以说活动不会被添加到堆栈。因此,在按下后,将不会加载任何活动。所以不要使用finish()
只需使用
startActivity(new Intent(ContactActivity.this, MainActivity.class));
overridePendingTransition (R.anim.slide_in_right, R.anim.slide_out_left);
因此,删除完成后,您的 MainActivity 将添加到活动堆栈中,然后在 ContactActivity 中按下它,它将自动加载您的 MainActivity
关注this
答案 3 :(得分:0)
您是否删除了MainActivity中的finish()
?
然后,检查启动MainActivity的意图的FLAG。您可能使用过FLAG_NO_HISTORY
。这意味着活动将在完成背景后完成。
答案 4 :(得分:-1)
如果要恢复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();
}