【问题标题】:How to catch device back button event in android?如何在android中捕获设备后退按钮事件?
【发布时间】:2012-06-29 16:23:04
【问题描述】:

我已经通过我的应用程序打开了 pdf 文件。当单击设备后退按钮时,它会自动返回到我的应用程序。它工作正常。这里我想在设备中捕获后退按钮事件。我覆盖后退按钮。但是它不工作。请帮助我。

【问题讨论】:

  • 你已经通过 Intent 打开了 pdf 文件?

标签: android


【解决方案1】:

这是你所问的一个例子:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK ) {
        //do your stuff
    }
    return super.onKeyDown(keyCode, event);
}

【讨论】:

【解决方案2】:

只需调用愚蠢的函数,这将关闭当前活动并将您移动到上一个屏幕

finish();

【讨论】:

    【解决方案3】:

    您将覆盖 Activity 类中的 onKeyDown 事件并查找 KEYCODE_BACK 的 keyCode。为了防止进一步传播,您将返回true 以阻止系统处理它,这应该会阻止后退按钮将您的用户带出您所在的任何地方。

    但是,这违反了用户期望发生的事情的规则,并且不建议这样做,除非您覆盖返回按钮以返回 WebView 中的页面或类似的东西。

    【讨论】:

      【解决方案4】:
      public void onBackPressed() {
      
              Intent intent = new Intent(CurrentActivity.this,
                      PreviousActivity.class);
              startActivity(intent);
      
                  return;
              }
      

      【讨论】:

        【解决方案5】:

        如果您在应用程序中处理了与 pdf 文件相关的操作(例如读取等),即在您的应用程序中有 Activity 或 Fragment 处理此 pdf 文件操作,那么您可以覆盖 onBackPressed() 方法以将您的逻辑放在那里。但是,如果您通过意图打开 pdf,即使用其他应用程序使用意图操作参数,那么您不能在应用程序中覆盖 onBackPressed() 或 onKeyDown() 事件。但是,您可以将您的逻辑放在您正在打开 pdf 文件的活动中覆盖 onActivityResult() 方法中。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-10-31
          • 1970-01-01
          • 2012-04-28
          • 1970-01-01
          • 2013-09-30
          • 2014-04-28
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多