如何在安卓系统中捕获设备返回键事件?

5

我希望我的应用程序能够打开PDF文件。当用户点击设备的返回按钮时,应用程序可以自动返回到原来的界面。这个功能现在已经实现了。但是我想在应用程序中捕获返回按钮事件。我已经尝试重写返回按钮的方法,但没有效果。请帮助我解决这个问题。


你通过Intent打开PDF文件了吗? - Mohsin Naeem
5个回答

12

这是一个关于你所问内容的示例:

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

https://dev59.com/h2435IYBdhLWcg3wnBd8. 请查看此链接。 - Dhaval

2
只需调用以下函数,即可关闭当前活动并将您移至上一个屏幕。
finish();

0
如果您的应用程序处理了与pdf文件相关的操作(如读取等),即您的应用程序中有Activity或Fragment处理此pdf文件操作,则可以重写onBackPressed() 方法并将您的逻辑放在那里。 但是,如果您通过Intent打开pdf,即使用intents action parameter使用其他应用程序,则无法在您的应用程序中重写onBackPressed() 或onKeyDown()事件。 但是,您可以在从其中打开pdf文件的活动中重写onActivityResult()方法,并将逻辑放置在其中。

0

你需要在你的Activity类中重写onKeyDown事件,并查找KEYCODE_BACK键的keyCode。为了防止进一步传播,你需要返回true来停止系统处理它,这样就可以阻止后退按钮将用户带出你所处的场景。

然而,这违反了用户所期望发生的规则,并且不建议这样做,除非你要覆盖后退按钮以便像在WebView中返回页面之类的操作。


0
public void onBackPressed() {

        Intent intent = new Intent(CurrentActivity.this,
                PreviousActivity.class);
        startActivity(intent);

            return;
        }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接