您好我的应用程序现在就这样工作..
主要 - >搜索 - > ActivityA - >搜索 - > ActivityB
当我从ActivityB单击回来时,我想执行以下操作
Main< - SEARCH< - ActivityB
即我想跳过活动ActivityA和SEARCH。我知道我必须使用FLAG,但是怎么样?
答案 0 :(得分:2)
可能会有所帮助 Android: Clear the back stack
答案 1 :(得分:1)
你只是这样做:
在SearchActivity中
Intent i = new Intent(this, ActivityA.class);
i.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(i);
在ActivityA中
Intent i = new Intent(this, SearchActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
startActivity(i);
将从B返回搜索,然后在两次按下后退按钮时返回Main。
<强>然而强>
如果您从Main搜索到A搜索然后点击后退按钮,您将从Search to Search转到Main。 (两个搜索实例,可能不是你想要的)
最好将活动A中的标志设置为:
Intent i = new Intent(this, SearchActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(i);
这将停止上述行为,并在您从B
回击时仍然可以提供您想要的内容答案 2 :(得分:0)
我必须覆盖SEARCH活动中的后退按钮,如此
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
Log.d(TAG, "back pressed");
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
return super.onKeyDown(keyCode, event);
}