我們可以在很多應用中都能看到按兩次返回鍵退出 , 其實這個功能實現很容易, 下面就是實現的代碼 , 把它放到你的程序中你的程序就能按兩次返回鍵退出啦 , 這個功能是為了避免誤點而把程序退出了 ,給你的程序也加上這個簡單實用的功能把 :
import android.app.Activity; import android.app.AlertDialog; import android.os.Bundle; import android.view.KeyEvent; import android.view.WindowManager; import android.widget.Toast; public class MainActivity extends Activity { private long mExitTime; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); setContentView(R.layout.activity_main); } public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { if ((System.currentTimeMillis() - mExitTime) > 2000) {// System.currentTimeMillis()無論何時調用,肯定大於2000 Toast.makeText(this, "再按一次退出程序", Toast.LENGTH_SHORT).show(); mExitTime = System.currentTimeMillis(); } return true; } else if (keyCode == KeyEvent.KEYCODE_MENU) { System.out.println("您按了菜單鍵"); CreatAlertDialog("您按了菜單鍵"); Toast.makeText(this, "您按了菜單鍵", Toast.LENGTH_SHORT).show(); return true; } else if (keyCode == KeyEvent.KEYCODE_HOME) { // 由於Home鍵為系統鍵,此處不能捕獲,需要重寫onAttachedToWindow() System.out.println("您按了HOME鍵"); CreatAlertDialog("您按了HOME鍵"); Toast.makeText(this, "您按了HOME鍵", Toast.LENGTH_SHORT).show(); return true; } return super.onKeyDown(keyCode, event); } private void CreatAlertDialog(String str){ new AlertDialog.Builder(this).setIcon(R.drawable.ic_launcher) .setMessage(str) .show(); } }
攔截/屏蔽系統Home鍵
//屏蔽HOME鍵 public void onAttachedToWindow() { this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); super.onAttachedToWindow(); }