Android 如何在使用新意图调用startActivity()时释放以前的意图

Android 如何在使用新意图调用startActivity()时释放以前的意图,android,android-activity,Android,Android Activity,我面对这个问题: 从活动创建意图 然后在主屏幕上,我出于这个目的调用startActivity 在IstartActivity使用意图A然后使用意图B之后,意图A仍然保留在后面 我想: 当IstartActivity具有意图B时,释放意图A 从任何位置按BACK将返回主屏幕 请帮帮我 tvAbout = (TextView) mSettingsMenu.findViewById(R.id.tv_about); tvAbout.setOnClickListener(new OnClickL

我面对这个问题:

  • 活动创建意图
  • 然后在主屏幕上,我出于这个目的调用
    startActivity
  • 在I
    startActivity
    使用意图A然后使用意图B之后,意图A仍然保留在后面
我想:

  • 当I
    startActivity
    具有意图B时,释放意图A
  • 从任何位置按BACK将返回主屏幕
请帮帮我

tvAbout = (TextView) mSettingsMenu.findViewById(R.id.tv_about);
tvAbout.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        Intent intent = new Intent(v.getContext(), AboutActivity.class);
        activity.startActivity(intent);
        mDrawerLayout.closeDrawer(Gravity.LEFT);
    }
});
tvProfile = (TextView) mSettingsMenu.findViewById(R.id.tv_profile);
tvProfile.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        Intent intent = new Intent(v.getContext(), ProfileActivity.class);
        activity.startActivity(intent);
        mDrawerLayout.closeDrawer(Gravity.LEFT);
    }
});
...

第二次启动活动时,将在名为onNewIntent的方法中接收到该意图。此时可以设置活动的意图

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    setIntent(intent);
}

第二次启动活动时,将在名为onNewIntent的方法中接收到该意图。此时可以设置活动的意图

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    setIntent(intent);
}
在你的代码中试试这个

A--->>>至B活动(此处A在B活动打开时完成)

然后按后退按钮打开A活动完成B活动

@Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            if ((keyCode == KeyEvent.KEYCODE_BACK)) {

            Intent intent = new Intent(getApplicationContext(),A_Activty.class);
                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                intent.putExtra("EXIT", true);
                startActivity(intent);
                finish();


            }
            return super.onKeyDown(keyCode, event);
        }
在你的代码中试试这个

A--->>>至B活动(此处A在B活动打开时完成)

然后按后退按钮打开A活动完成B活动

@Override
        public boolean onKeyDown(int keyCode, KeyEvent event) {
            if ((keyCode == KeyEvent.KEYCODE_BACK)) {

            Intent intent = new Intent(getApplicationContext(),A_Activty.class);
                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                intent.putExtra("EXIT", true);
                startActivity(intent);
                finish();


            }
            return super.onKeyDown(keyCode, event);
        }

非常感谢。完成然后覆盖按下的后退键在这种情况下可能是一个不错的选择。我有个问题,如果我调用活动B中的片段,我应该怎么做?你想调用活动B中的片段吗?谢谢。完成然后覆盖按下的后退键在这种情况下可能是一个不错的选择。我有个问题,如果我调用活动B中的片段,我应该怎么做?你想调用活动B中的片段吗?谢谢。完成然后覆盖按下的后退键在这种情况下可能是一个不错的选择。我有一个问题,如果我调用活动B中的片段,我应该怎么做?你想调用活动B中的片段吗?