androidのBack返回鍵,home鍵,menu鍵監聽使用
阿新 • • 發佈:2019-01-28
1.點選back 鍵後,彈出對話方塊
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode==KeyEvent.KEYCODE_BACK){ final AlertDialog exit=new AlertDialog.Builder(this).create(); exit.setTitle("系統提示"); OnClickListener listener=new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { switch(which){ case AlertDialog.BUTTON1: finish(); break; case AlertDialog.BUTTON2: exit.cancel(); break; default: break; } } }; exit.setButton("確定", listener); exit.setButton2("取消", listener); exit.show(); } return super.onKeyDown(keyCode, event); }
2.如果是想要點選返回鍵,點選兩次才返回時,為了防止意外點選情況
@Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(keyCode==event.KEYCODE_BACK){ if(System.currentTimeMillis()-time>2000){ time=System.currentTimeMillis(); }else{ finish(); } return true; } return super.onKeyDown(keyCode, event); }
3. 當用戶點選自定義的退出按鈕或返回鍵時,在onDestroy()裡強制退出應用,或直接殺死程序
4. 如果想要遮蔽back鍵,點選back鍵無效果@Override public boolean onKeyDown(int keyCode, KeyEvent event) { // TODO Auto-generated method stub if(keyCode==event.KEYCODE_BACK){ new AlertDialog.Builder(this). setIcon(R.drawable.aa4) .setTitle(R.string.add_user) .setMessage(R.string.action_settings) .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { } }) .setPositiveButton(R.string.address, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int whichButton) { finish(); } } ).show(); return true; } return super.onKeyDown(keyCode, event); } @Override protected void onDestroy() { // TODO Auto-generated method stub android.os.Process.killProcess(android.os.Process.myPid()); super.onDestroy(); }
public boolean onKeyDown(int keyCode, android.view.KeyEvent event) {
if(keyCode==KeyEvent.KEYCODE_BACK){
return true;
}else{
return super.onKeyDown(keyCode, event);
}
}
返回為true, 就無效果了。