sko*_*lis 11
只需覆盖活动中的onKeyDown方法,然后查找后退按钮.返回true以便消耗该事件.
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
//Do something here
return true;
}
return super.onKeyDown(keyCode, event);
}
Run Code Online (Sandbox Code Playgroud)
根据文档onBackPressed
,如果可以的话不要使用。现在推荐使用onBackPressedDispatcher.addCallback(this) {}
. 有一个片段示例:
class MyFragment : Fragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// This callback will only be called when MyFragment is at least Started.
val callback = requireActivity().onBackPressedDispatcher.addCallback(this) {
// Handle the back button event
}
// The callback can be enabled or disabled here or in the lambda
}
...
}
Run Code Online (Sandbox Code Playgroud)
正如schwiz指出的那样,您需要覆盖onBackPressed()
活动类中的方法(http://developer.android.com/reference/android/app/Activity.html#onBackPressed()).
我只是想补充一点,如果你确实想要在某个阶段继续或访问标准的后退操作(在显示对话框之后),那么你只需要调用super.onBackPressed()
或ActivityName.super.onBackPressed()
从Activity中的任何地方调用.