标签:
1 import android.app.Activity; 2 import android.os.Bundle; 3 import android.util.Log; 4 import android.view.KeyEvent; 5 import android.widget.Toast; 6 7 public class MainActivity extends Activity { 8 9 10 @Override 11 protected void onCreate(Bundle savedInstanceState) { 12 super.onCreate(savedInstanceState); 13 setContentView(R.layout.activity_main); 14 } 15 //我们在处理物理按键事件时,提供的回调方法有onKeyUp(),onKeyDown(),和onKeyLongPress(),比如音量键、返回键 16 17 @Override 18 public boolean onKeyDown(int keyCode, KeyEvent event) { 19 if(keyCode == KeyEvent.KEYCODE_BACK){ 20 Log.e("TAG", "这是监听键盘操作,按下了Back键"); 21 } 22 return super.onKeyDown(keyCode, event); 23 } 24 @Override 25 public boolean onKeyUp(int keyCode, KeyEvent event) { 26 if(keyCode == KeyEvent.KEYCODE_VOLUME_UP){ 27 Log.e("TAG", "音量加键"); 28 } 29 return super.onKeyUp(keyCode, event); 30 } 31 32 //Activity中,我们可以重写onBackPressed()方法来处理返回键,如两次按键退出 33 //第一次按下的时候,记录事件 34 //第二次按下的事件减去第一次按下的时间小于2s就退出,否则将当前时间赋给第一次事件 35 long startTime; 36 37 @Override 38 public void onBackPressed() { 39 Log.e("TAG", "监听Back键"); 40 41 if(System.currentTimeMillis()-startTime<2000){ 42 super.onBackPressed();//释放资源,这个也可以直接finish(),但调用父类的释放的更彻底 43 }else{ 44 //记录当前时间 45 startTime = System.currentTimeMillis(); 46 Toast.makeText(this, "再按一次Back键退出", Toast.LENGTH_SHORT).show(); 47 } 48 } 49 50 }
一些常用物理按键
电源键 KEYCODE_POWER
后退键 KEYCODE_BACK
菜单键 KEYCODE_MENU
HOME键 KEYCODE_HOME
相机键 KEYCODE_CAMERA
音量键 KEYCODE_VOLUME_UP / KEYCODE_VOLUME_DOWM
搜索键 KEYCODE_SEARCH
方向键 KEYCODE_DPAD_CENTER
KEYCODE_DPAD_UP
KEYCODE_DPAD_DOWN
KEYCODE_DPAD_LEFT
KEYCODE_DPAD_RIGHT
键盘键 KEYCODE_0...KEYCODE_9
KEYCODE_A....KEYCODE_Z
标签:
原文地址:http://www.cnblogs.com/Claire6649/p/5948295.html