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

时间:2015-06-16 09:35:32

标签: android android-activity

我正面临这个问题:

  • Activity
  • 创建意图
  • 然后在主屏幕上,我用这个意图打电话给startActivity
  • 在我startActivity之后有意图A然后意图B,意图A仍然留在
  • 之后

我想:

  • 自由意图A当startActivity有意图B
  • 从任何意图按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);
    }
});
...

2 个答案:

答案 0 :(得分:0)

第二次启动Activity时,会在名为onNewIntent的方法中接收intent。您可以在此时设置活动的意图。

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

答案 1 :(得分:0)

在您的代码中尝试此操作

:一种--->>>到B Activty(这里A打开B活动时完成)

 Intent addIntent = new Intent(this, B_AboutActivity.class);
                  startActivity(addIntent);
                  finish();

然后按返回按钮打开 A Activty 完成 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);
        }