一般來說,為了避免連按Back倒退鍵造成程式關閉,會作Back倒退鍵的事件監聽。
這邊提供兩個方法
onKeyDown是透過按鍵監聽事件來達到攔截Back倒退鍵的效果。
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Toast.makeText(this, "你確定要離開?", Toast.LENGTH_SHORT).show()
return false
}
return super.onKeyDown(keyCode, event)
}
我們在 if (keyCode == KeyEvent.KEYCODE_BACK)裡面打上return false是因為我們並不想讓Back倒退鍵把APP關掉。
onBackPressed是直接覆寫Back倒退鍵事件。
override fun onBackPressed() {
Toast.makeText(this, "你確定要離開?", Toast.LENGTH_SHORT).show()
}
所以當我們在覆寫的同時,原本的退出APP的動作就被我們取代掉了。