【发布时间】:2012-06-29 16:23:04
【问题描述】:
我已经通过我的应用程序打开了 pdf 文件。当单击设备后退按钮时,它会自动返回到我的应用程序。它工作正常。这里我想在设备中捕获后退按钮事件。我覆盖后退按钮。但是它不工作。请帮助我。
【问题讨论】:
-
你已经通过 Intent 打开了 pdf 文件?
标签: android
我已经通过我的应用程序打开了 pdf 文件。当单击设备后退按钮时,它会自动返回到我的应用程序。它工作正常。这里我想在设备中捕获后退按钮事件。我覆盖后退按钮。但是它不工作。请帮助我。
【问题讨论】:
标签: android
这是你所问的一个例子:
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK ) {
//do your stuff
}
return super.onKeyDown(keyCode, event);
}
【讨论】:
只需调用愚蠢的函数,这将关闭当前活动并将您移动到上一个屏幕
finish();
【讨论】:
您将覆盖 Activity 类中的 onKeyDown 事件并查找 KEYCODE_BACK 的 keyCode。为了防止进一步传播,您将返回true 以阻止系统处理它,这应该会阻止后退按钮将您的用户带出您所在的任何地方。
但是,这违反了用户期望发生的事情的规则,并且不建议这样做,除非您覆盖返回按钮以返回 WebView 中的页面或类似的东西。
【讨论】:
public void onBackPressed() {
Intent intent = new Intent(CurrentActivity.this,
PreviousActivity.class);
startActivity(intent);
return;
}
【讨论】:
如果您在应用程序中处理了与 pdf 文件相关的操作(例如读取等),即在您的应用程序中有 Activity 或 Fragment 处理此 pdf 文件操作,那么您可以覆盖 onBackPressed() 方法以将您的逻辑放在那里。但是,如果您通过意图打开 pdf,即使用其他应用程序使用意图操作参数,那么您不能在应用程序中覆盖 onBackPressed() 或 onKeyDown() 事件。但是,您可以将您的逻辑放在您正在打开 pdf 文件的活动中覆盖 onActivityResult() 方法中。
【讨论】: