安卓开发学习12-2:Android事件处理和⼿势:物理按键事件处理物理按键
物理按键的三种状态
onKeyDown:按下物理按键
onKeyUp:松开物理按键
onKeyLongPress:长按
简易安卓app开发物理按键所对应的常量
上述监听第三个监听状态的⽅法,是通⽤的基于回调的事件处理,也就是所有物理按键的按下和松开都会触发上述的onKeyDown和onKeyUp⽅法
安卓系统中提供了对应的常量来区分不同的物理按键
⾳量上、下:KEYCODE_VOLUME_UP、KEYCODE_VOLUME_DOWN
电源键:KEYCODE_POWER
返回键:KEYCODE_BACK
主屏键:KEYCODE_HOME
菜单键:KEYCODE_MENU
实例
1、需求:实现点击两次返回键退出程序
2、MainActivity.java
package  ;import  Nullable ;import  AppCompatActivity ;import  FragmentTransaction ;import  ComponentName ;import  Intent ;import  Uri ;import  Bundle ;import  Log ;import  KeyEvent ;import  LayoutInflater ;import  MotionEvent ;import  View ;import  Button ;import  EditText ;import  ImageView ;
import  TabHost ;import  Toast ;public  class  MainActivity extends  AppCompatActivity {    public  Long exitTime = 0L ;    @Override    protected  void  onCreate (Bundle savedInstanceState ) {        super .onCreate (savedInstanceState );        setContentView (R .layout .activity_main );    }//  按键监听    @Override    public  boolean  onKeyDown (int  keyCode , KeyEvent event ) {        if (keyCode == KeyEvent .KEYCODE_BACK ){            exit ();//          返回true ,停⽌默认⾏为,例如返回键默认⾏为就是返回上⼀层,如果是主页⾯,那么按返回键就是退出程序            return  true ;        }        return  super .onKeyDown (keyCode , event );    }    public  void  exit (){//      在1秒内再⼀次按返回键就退出程序        if (System .currentTimeMillis () - exitTime > 1000){            Toast .makeText (MainActivity .this , "再按⼀次退出程序", Toast .LENGTH_SHORT ).show ();            exitTime = System .currentTimeMillis ();        }else {//          退出当前Activity            finish ();//          程序正常退出            System .exit (0);        }    }}12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。