0

这段代码的使用我称之为 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')将关闭。但我想重新启动这项活动。

4

5 回答 5

1

删除 finsh(); 在最后一行尝试。然后,您将在按下后退按钮时获得主要活动。

希望它会帮助你。

于 2013-06-25T06:20:52.997 回答
0

覆盖 backPress 将开始新的意图。这是不好的!只是不正​​确完成()。我想这应该会自动将您带到上一个活动。

于 2013-06-25T06:25:29.530 回答
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

关注这个

于 2013-06-25T06:30:56.953 回答
0

finish()在 MainActivity 中删除了吗?

然后,检查启动 MainActivity 的意图上的 FLAG。你可能用过FLAG_NO_HISTORY. 这意味着活动将在进入后台时完成。

于 2013-06-25T06:41:43.780 回答
-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();
}
于 2013-06-25T06:22:01.073 回答