@Override
public void onBackPressed() {
if (searchView.isSearchOpen()) {
searchView.closeSearch();
} else if (activeFragment != homeFragment) {
goToHomeFragment();
} else {
super.onBackPressed();
finish();
}
}
在上面的代码中,在else块中到达时,活动将重新创建自身,而不是完成自身并退出。托管的活动有4个片段,但我想这与片段无关。那么关于出什么问题了吗?有什么建议么?谢谢您的关注。
编辑:根据Manzurul Hoque Rumi所说,moveTaskToBack(true)确实完成了工作。问题已中和。我要感谢所有回答我问题的人。
答案 0 :(得分:0)
删除finish()
并尝试
@Override
public void onBackPressed() {
if (searchView.isSearchOpen()) {
searchView.closeSearch();
} else if (activeFragment != homeFragment) {
goToHomeFragment();
} else {
moveTaskToBack(true);
}
}
答案 1 :(得分:0)
您可以尝试在要关闭的活动的一部分中添加清单android:noHistory="true"
<activity
android:name=".DeviceControlActivity"
android:screenOrientation="landscape"
android:noHistory="true"
/>
答案 2 :(得分:0)
如果您将根活动定义为可搜索活动,则应在清单中将其启动模式定义为singleTop。
android:launchMode="singleTop"
答案 3 :(得分:0)
@Override
public void onBackPressed() {
if (searchView.isSearchOpen()) {
searchView.closeSearch();
} else if (activeFragment != homeFragment) {
goToHomeFragment();
} else {
finish();
}
}
答案 4 :(得分:0)
确保您的活动没有被创建多次,仅调用finish()并删除super.onBackPressed()