你好,我的应用程序现在是这样工作的。
Main -> SEARCH -> activita -> SEARCH -> activitb
当我从ActivityB点击返回时,我想做以下操作
Main <- SEARCH <- ActivityB
。我想跳过活动activita和SEARCH。我知道我必须使用FLAG,但是怎么使用呢?
可能会有帮助Android:清空backstack
你可以这样做:
在SearchActivityIntent 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键返回到搜索键,然后返回到主键。
然而如果你从主菜单转到搜索菜单,再按A键转到搜索菜单,然后按后退键,你会从搜索菜单转到搜索菜单再转到主菜单。(两个搜索实例,可能不是你想要的)
最好将活动A中的标志设置为:
Intent i = new Intent(this, SearchActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(i);
这将停止上述行为,并仍然给你你想要的,当你从B
我只需要重写搜索活动中的后退按钮,像这样
@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);
}