`

重写back键

 
阅读更多

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub
if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
// 需要处理
//return true;//屏蔽back键(不响应back键)
}

return super.onKeyDown(keyCode, event);
}


-------------
//方法二
activity里有 onBackPressed()方法, 重写即可

重新 home键

默认情况下,重写onKeyDown方法是无法捕捉到HOME键的,原因不太清楚,
不过我想是因为系统也在捕捉HOME键,而且优先级比我们的程序要高.我们可以通过修改窗口类型来达到我们的目的.
首先重写onAttachedToWindow方法:

@Override
public void onAttachedToWindow() {
// TODO Auto-generated method stub
super.onAttachedToWindow();
this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
//设置窗口类型
}
onAttachedToWindow 在API文档中英文原文解释:
Called when the main window associated with the activity has been
attached to the window manager.在主窗口被关联到被附加到窗口管理器的Activity时调用,
其实说得模糊点应该就是在Activity启动时调用的.加了这个后,在UI上有点小变化,
如果你的Activity不是占满全屏的(AlertDialog样式),默认情况下是会显示Activity下面的窗口的(没有被遮住的部分),
但是加了这个以后,Activity以外的空间是全黑的.
然后就可以在onKeyDown里捕捉到了:


@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
// TODO Auto-generated method stub

if(keyCode==KeyEvent.KEYCODE_HOME){
System.out.println("按到HOME键");
return false;
}
return super.onKeyDown(keyCode, event);
}

分享到:
评论

相关推荐

    重写返回键,重写menu键

    首先,我们来详细了解返回键(BACK键)的重写。在Android中,Activity类有一个`onBackPressed()`方法,当用户按下设备的返回键时,系统会默认调用这个方法,关闭当前Activity并返回到上一级。如果我们想要在用户按下...

    屏蔽Home+Back键

    在Android中,可以重写Activity的`onKeyDown()`和`onKeyUp()`方法,检测Keycode为`KEYCODE_HOME`(Home键)和`KEYCODE_BACK`(Back键)的按键事件。当检测到这些事件时,我们可以选择不执行默认行为,即阻止它们的...

    2.8 自定义BACK按键

    这个方法会在用户按下BACK键时被调用。例如,你可以在这里执行一些清理工作、显示对话框确认退出、或者改变导航流程: ```java @Override public void onBackPressed() { // 自定义的处理逻辑 // ... super....

    监听BACK按键

    当用户按下BACK键时,系统会调用当前Activity的`onBackPressed()`方法。这个方法是系统默认的行为,通常是关闭当前Activity并返回上一个。但开发者可以根据需要重写这个方法来实现自定义的功能。 下面是一个简单的...

    back键退出

    根据提供的文件信息,我们可以分析并总结出与“back键退出”功能相关的知识点。这段代码主要涉及Android应用开发中的按键事件处理、线程操作以及Activity生命周期管理等几个方面。接下来将详细解析这些知识点。 ###...

    Android中home键和back键区别实例分析

    开发者可以通过重写这个方法来自定义Back键的行为,如上述代码所示,可以模拟Home键的效果,或者执行其他操作。 至于退出应用程序,通常不建议开发者直接结束整个应用,因为这可能会破坏Android的正常工作流程,...

    屏幕触控事件和按键事件,拖动图片,连按两次back键退出系统

    为了实现这一功能,我们需要在onKeyDown()方法中记录下每次按下BACK键的时间,如果两次按键间隔小于一个预设的阈值(如250毫秒),则视为连续按压,此时可以调用finish()方法来结束当前Activity,从而退出应用。...

    Android 2秒内按两次back键退出应用

    标题"Android 2秒内按两次back键退出应用"所涉及的知识点就是如何实现这一功能。 首先,我们需要了解Android中的`onBackPressed()`方法。这个方法是系统在用户点击设备上的返回键时调用的,它的默认行为是关闭当前...

    Android中让按钮拥有返回键功能的方法及重写返回键功能

    在Android开发中,让按钮拥有返回键功能以及重写返回键功能是常见的需求,这有助于提升用户体验和控制应用的导航流程。以下将详细介绍这两种方法及其相关的知识点。 首先,要让一个按钮具有返回键功能,最简单的...

    Android实现长按back键退出应用程序的方法

    总之,通过重写`onKeyDown()`和`onKeyUp()`,记录按键时间并创建确认对话框,我们可以实现Android应用的长按Back键退出功能。同时,理解Android的按键事件处理机制有助于更好地定制和优化这类交互体验。

    Android 双击Back键退出应用的实现方法

    本文将详细介绍如何实现Android双击Back键退出应用的功能。 首先,我们需要理解实现这一功能的基本思路。核心思想是设置一个退出标识(例如,一个布尔变量`quit`),当用户第一次点击Back键时,显示一个提示信息...

    android处理键盘事件之物理按键(屏蔽后退键)

    总结来说,Android开发者可以通过重写`onKeyDown`、`onKeyUp`和`onBackPressed`方法来处理物理按键事件,特别是屏蔽后退键。不过在屏蔽系统功能前,务必考虑用户体验,确保你的应用仍然保持易用性。同时,提供的文档...

    Android实现Back功能代码片段总结

    实现Back键功能方法有: 一:重写onBackPressed方法 代码如下: @Override  public void onBackPressed() {  // do something what you want  super.onBackPressed();  } 二:使用测试框架Instrumentation,...

    Android用户界面之重写onKeyDown方法源码.zip

    if (keyCode == KeyEvent.KEYCODE_BACK) { // 处理返回键按下事件 return true; } else if (keyCode == KeyEvent.KEYCODE_MENU) { // 处理菜单键按下事件 return true; } // 其他按键处理... return super....

    PopupWindow监听返回键

    因此,我们需要重写这个方法,检查Keycode.KEYCODE_BACK(返回键的代码)并处理对应的逻辑。 ```java @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK ...

    Android应用源码之按键的处理.zip

    在Android中,还有一些特殊的按键事件,如BACK键、HOME键、MENU键等。这些系统级的按键处理需要特别注意,因为它们涉及到应用的导航和退出逻辑。例如,处理BACK键通常是为了防止用户意外退出应用: ```java @...

    Android 用户界面之重写onKeyDown方法源码.zip

    除了`KEYCODE_BACK`,还有许多其他的按键代码,如`KEYCODE_MENU`(菜单键)、`KEYCODE_HOME`(主页键)等,开发者可以根据需求来处理这些按键的事件。 在深入研究`onKeyDown`之前,需要理解Android的事件处理机制。...

    Android onKeyDown监听返回键无效的解决办法

    在某些情况下,比如Activity继承了TabActivity时,直接重写onKeyDown()可能无法监听到返回键的事件。这是因为TabActivity有自己的按键事件处理机制。为了解决这个问题,我们可以重写dispatchKeyEvent()方法: ```...

    Android源码——用户界面之重写onKeyDown方法源码_new_60.zip

    例如,常见的KeyCode有KEYCODE_ENTER、KEYCODE_BACK等,分别对应回车键和返回键。 在源码中,我们通常可以看到这样的重写方式: ```java @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if ...

Global site tag (gtag.js) - Google Analytics