內(nèi)容原文:https://blog.csdn.net/li15225271052/article/details/62884597
方式一
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
moveTaskToBack(false);
return true;
}
return super.onKeyDown(keyCode, event);
}
方式二
@Override
public void onBackPressed() {
moveTaskToBack(false);
// super.onBackPressed(); //注釋super,攔截返回鍵功能
}
里面的moveTaskToBack()是關鍵彤蔽。
moveTaskToBack()方法:在activity中調(diào)用 moveTaskToBack (boolean nonRoot)方法即可將activity 退到后臺筑悴,注意不是finish()退出爵卒。
參數(shù)說明:
參數(shù)為false——代表只有當前activity是task根,指應用啟動的第一個activity時慷嗜,才有效;
參數(shù)為true——則忽略這個限制砾莱,任何activity都可以有效讶舰。
說明:判斷Activity是否是task根灯抛,Activity本身給出了相關方法:isTaskRoot()
解釋下moveTaskToBack調(diào)用后,task中activity的順序不會發(fā)生變化拭宁,例如A啟動B洛退,B中調(diào)用此方法退到后臺,重新啟動應用會調(diào)用B中的onRestart-onStart-onResume方法杰标,不會重新調(diào)用onCreate兵怯,而且在B中按下back鍵返回的還是A,這就是退到后臺的功能腔剂。
其實就是和home的效果差不多了