当前位置: 首页 > 面试题库 >

Java覆盖后退按钮以充当主页按钮

琴修为
2023-03-14
问题内容

如何在自己的应用程序中复制此功能

我认为肯定有三种可能性…

  1. 捕获后退按钮的按下(如下所示),然后调用home按钮调用的任何方法。
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if ((keyCode == KeyEvent.KEYCODE_BACK)) {
        Log.d(this.getClass().getName(), "back button pressed");
    }
    return super.onKeyDown(keyCode, event);
}
  1. 捕获后退按钮按下,然后欺骗主页按钮。

  2. 捕获后退按钮的按下,然后启动主屏幕的活动,从而有效地将应用程序的活动置于停止状态。

编辑: 我知道有关服务,并且正在与此问题相关的应用程序中使用一种。该问题专门用于在按“后退”按钮时将活动置于停止状态而不是已破坏状态。


问题答案:

大多数时候,你需要创建一个Service在后台执行某些操作,而你的可见对象Activity只需控制此操作Service。(我敢肯定,音乐播放器以相同的方式工作,所以在文档的例子似乎有点误导。)如果是这样的话,那么你Activity可以finish像往常一样和Service仍将运行。

一种更简单的方法是捕获Back按钮按下并按如下所示调用moveTaskToBack(true)

// 2.0 and above
@Override
public void onBackPressed() {
    moveTaskToBack(true);
}

// Before 2.0
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        moveTaskToBack(true);
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

我认为首选的选择应该是活动能够正常完成,并且能够重新创建自身,例如,如果需要,可以从服务中读取当前状态。但是moveTaskToBack有时也可以用作快速替代方法。

注意:如Dave所指出的,Android 2.0以下引入了一种新onBackPressed方法,以及有关如何处理“后退”按钮的这些建议。



 类似资料:
  • 好吧,我正在做一些事情,我想禁用设备的所有硬按钮。 硬按钮,如电源、主页、调高音量、调低音量、搜索、返回。 除了Power,我已经成功地覆盖了这里的几乎所有按钮。 所以我只想让你们看到,请分享一些想法,这样我就可以不受影响了。 我在获得长按电源键事件,就像我想抓住相同的短按一样。此外,当按下电源时,我还试图通过获取的来停止屏幕关闭,我成功地接收了它,但我无法处理它。 谢谢。 然后,我创建了一个接收

  • 我在这件事上完全被难住了。我有一个活动C,当我试着按下后退按钮时,它工作了。但是,当我使用操作栏中的home/up按钮时,它就会崩溃(请参见下面的错误)。下面是我的代码中处理备份/备份按钮的部分。 活动C: 错误: 这是否与到达活动C有两种可能的方式有关?要么是-

  • 问题内容: 我想在操作栏中自定义活动后退按钮,而不是在硬键后退按钮中自定义。我已经重写了该方法。它可以与我的模拟器后退按钮一起使用,但不能与操作栏后退按钮一起使用。 我希望它与操作栏一起发生。我怎样才能做到这一点? 这是我的代码: 我已经用了这个祝酒,无论是否按回去都可以,但是实际的实现方式有所变化,例如想回到上一个活动。但这不适用于操作栏顶部的按钮(活动标题除外)。 请任何人可以指定我这个问题。

  • 我想自定义操作栏中的“活动后退”按钮,而不是硬键后退按钮。我已经重写了onBackPressed()方法。它适用于我的emulator back按钮,但不适用于action bar back按钮。 我希望它发生在动作栏上。我该怎么做? 这是我的代码: 我已经使用了这个祝酒词,不管后退是否有效,但是实际的实现变化喜欢移动回以前的活动。但是这不适用于操作栏顶部的按钮(除了活动标题)。 请任何人都可以指

  • 在特定页面上,是否有办法停用Android后退按钮? 在第一页上,我有一个按钮可以转到第二页: 我的问题是,如果我按下android屏幕底部的返回箭头,我会返回到第一页。我不希望这个按钮出现。理想情况下,我希望没有可能离开这个屏幕,除非用户保持他的手指按在屏幕上5秒钟。(我正试图为初学走路的孩子编写一个应用程序,希望只有父母能够导航出特定的屏幕)。