android回退键不触发onkeydown事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了android回退键不触发onkeydown事件相关的知识,希望对你有一定的参考价值。

public class MainActivity extends ActivityGroup implements OnGestureListener,
OnTouchListener
。。。。。。。。。。。。。。。
/**
* 回退键
*/
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
Log.i("main","onkeydown");

if(keyCode==KeyEvent.KEYCODE_BACK)
new AlertDialog.Builder(MainActivity.this).setTitle("音乐盒")
.setIcon(R.drawable.icon_1)
.setMessage("你确定要离开吗?")
.setPositiveButton("确定",new DialogInterface.OnClickListener()
@Override
public void onClick(DialogInterface dialog, int which)
//发送广播给services,使其停止播放。

finish();

).setNegativeButton("取消",new DialogInterface.OnClickListener()

@Override
public void onClick(DialogInterface dialog, int which)

).show();


return super.onKeyDown(keyCode, event);

点击模拟器上都回退键就直接退出了。Log也没有打印。
解决啦。于不是继承都activity有关。extends ActivityGroup 。所以onKeyDown不会执行。
# public boolean dispatchKeyEvent(KeyEvent event)
# System.out.println(KeyEvent.KEYCODE_BACK+"--------------------"+event.getKeyCode()+"---------------------"+event.getAction());
# long exitTime = 0;
# if(event.getKeyCode()==KeyEvent.KEYCODE_BACK && event.getAction()==KeyEvent.ACTION_DOWN)
# if((System.currentTimeMillis()-exitTime) > 2000)
# Toast.makeText(getApplicationContext(), "再按一次退出程序", Toast.LENGTH_SHORT).show();
# exitTime = System.currentTimeMillis();
# else
# finish();
# System.exit(0);
#
# return true;
#
#
#
# return super.dispatchKeyEvent(event);
#
这样就没问题啦。。。运行OK

参考技术A 回退键应该是调用Activity里的onBackPressed方法,你找错地方了。追问

没用。还算不行

参考技术B 经验证 在我的手机上运行正常追问

我在adb模拟器上运行的。但是点回退键的时候更本不调用该方法。不过其他键就能调用,比如数字键啥的,也能log出来。就是点回退键不进入该方法。

追答

你的模拟器有没有问题,你可以把这段代码注释掉,看看点back程序是否会退出。

追问

回退键是回退出程序啊,也就是点击回退键就退出整个程序啦,更本没进该方法。

追答

Log.i("main","onkeydown");
这个log有输出吗?
如果没有 可能你的模拟器有问题。。。。

追问

没有。所以才说更本就没进入到onkeydown方法里面啊。不知道同 extends ActivityGroup implements OnGestureListener,OnTouchListener有没有关系。

本回答被提问者采纳

onkeydown事件不触发了,怎么办

如果全键盤给你一个简单的方法在你的窗体上放一个 Popmenu 在POPMENU裏增加一项叫ESC吧。POPMEN每项都有快键捷的,设置好了就行了。

这种方式比较方便你统一管理。
参考技术A 你能不能把问题说清楚

以上是关于android回退键不触发onkeydown事件的主要内容,如果未能解决你的问题,请参考以下文章

Linux终端实现回退键(backspace)删除错误输入的功能

react-navigation从引导页跳转到主页,物理回退键,不能再返回到引导页,代码怎么写?

js 在输入框中如何实现回退键功能?

微信页面阻止android回退键退出

苹果电脑撤销快捷键

OnKeyPress、onKeyDown、onKeyUp 事件在 Android 下的 Firefox/Chrome 中在键入字母时未触发