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
使用意图A然后使用意图B之后,意图A仍然保留在后面startActivity
- 当I
具有意图B时,释放意图AstartActivity
- 从任何位置按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中的片段吗?