QML怎么处理android的back键

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QML怎么处理android的back键相关的知识,希望对你有一定的参考价值。

Back键是手机上的后退键,一般的软件不捕获相关信息可能导致你的程序被切换到后台,而回到桌面的尴尬情况,在android上有两种方法来获取该按钮的事件。
1.直接获取按钮按下事件,此方法兼容Android 1.0到Android 2.1 也是常规方法,直接重写Activity的onKeyDown方法即可,代码如下:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) //按下的如果是BACK,同时没有重复
Toast.makeText(ml78.this,"魔力去吧Back键测试",1).show();
return true;

return super.onKeyDown(keyCode, event);

2、重写onBackPressed方法
而对于Android 2.0开始又多出了一种新的方法,对于Activity 可以单独获取Back键的按下事件,直接重写onBackPressed方法即可,代码如下
@Override
public void onBackPressed()
// 这里处理逻辑代码,大家注意:该方法仅适用于2.0或更新版的sdk
return;
参考技术A 方法一:重写onBackPressed方法

Java代码
@Override
public void onBackPressed()
// do something what you want
super.onBackPressed();


方法二:重写dispatchKeyEvent

Java代码
@Override
public boolean dispatchKeyEvent(KeyEvent event)
// TODO Auto-generated method stub
if (event.getAction() == KeyEvent.ACTION_DOWN
&& event.getKeyCode() == KeyEvent.KEYCODE_BACK)
//do something what you want
return true;//返回true,把事件消费掉,不会继续调用onBackPressed

return super.dispatchKeyEvent(event);


方法三:使用测试框架Instrumentation,模拟任意键按下动作,注意的是该方法不能在主线程中使用,只能开启新线程,带来的问题就是反应速度较慢,项目中不建议使用。
调用actionKey(KeyEvent.KEYCODE_BACK);产生back键单击效果

以上是关于QML怎么处理android的back键的主要内容,如果未能解决你的问题,请参考以下文章

android 中按下返回键销毁activity的详细调用过程。 求大神解答。

Android Back Home键监听

Android Back Home键监听

Atitit.android js 的键盘按键检测Back键Home键和Menu键事件

Android中弹出dialog后无法捕捉back键

android屏蔽BACK键HOME键和多任务键