安卓开发学习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小时内删除。
发表评论