可以通过在 Activity
中重写 onKeyDown
来检测何时按下后退键:
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_MENU) {
//do your work
return true;
}
return super.onKeyDown(keyCode, event);
}
现在,如何从 Service
检测到这一点?
最佳答案
在 Android 中,没有办法“不搞得一团糟”,如果你需要这样做,你实际上做错了什么的可能性很高,因为正如服务文档中所指定的“服务是一个应用程序”代表应用程序希望在不与用户交互的情况下执行长时间运行的操作的组件”。服务组件旨在仅用于长时间执行的任务,这些任务不需要任何交互,也不依赖于除了启动和停止之外的 Activity 的特定操作。默认情况下,该服务不包含您需要的输入法,但只是为了回答您的问题。一种方法是将服务绑定(bind)到 Activity ,从 Activity 获取服务引用,在服务中实现一个方法,然后在 Activity 中调用 onKeyPress 时从 Activity 中执行该方法。
这是将 Activity 绑定(bind)到服务的方式:ServiceBinder
希望这有帮助。
问候!
关于java - android-如何检测服务中的按键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18880196/