安卓使用物理鍵監聽器
阿新 • • 發佈:2018-12-03
使用手機物理鍵對程式程式監聽,在此總結。
手機物理鍵:
KEYCODE_VOLUME_UP;//加音鍵
KEYCODE_VOLUME_DWON;//減音鍵
KEYCODE_POWER;//電源鍵
keyCode == KeyEvent.KEYCODE_HOME//home鍵
keyCode == KeyEvent.KEYCODE_BACK//返回鍵
keyCode == KeyEvent.KEYCODE_MENU//選單鍵
下面以一個手機返回物理鍵為例,點選返回,會彈出“再按一次退出程式”字樣,如果連續點選兩次返回,程式直接退出。
效果圖
activity_main.xml檔案
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:src="@mipmap/cat" android:scaleType="fitXY" /> </LinearLayout>
MainActivity.java檔案
package com.example.a13468.mydemo01; import android.app.Activity; import android.os.Bundle; import android.view.KeyEvent; import android.widget.Toast; import static android.view.KeyEvent.KEYCODE_BACK; import static android.view.KeyEvent.KEYCODE_HOME; public class MainActivity extends Activity { private long exitTime=0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } /** * 設定觸莫按下的回撥監聽 */ @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if(keyCode==KEYCODE_BACK){ exit(); return true; } return super.onKeyDown(keyCode, event); } public void exit(){ //System.currentTimeMillis()獲取當前時間 if((System.currentTimeMillis()-exitTime)>2000){ Toast.makeText(this, "再按一次退出程式", Toast.LENGTH_SHORT).show(); exitTime= System.currentTimeMillis(); } else { finish(); System.exit(0); } } }