【问题标题】:android-how to detect key presses from a Service?android-如何从服务中检测按键?
【发布时间】:2013-09-23 16:23:27
【问题描述】:

可以通过在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 中检测到?

【问题讨论】:

    标签: java android service android-activity keypress


    【解决方案1】:

    没有办法在 android 中原生地“不做一团糟”,如果你需要这样做,你实际上做错了什么的可能性很高,因为如服务文档中所述“服务是一个应用程序表示应用程序希望在不与用户交互的情况下执行更长时间运行的操作的组件”。服务组件仅用于长时间执行不需要任何交互也不依赖于除启动和停止之外的活动的特定操作的任务。默认情况下,该服务不包含您需要的输入法,而只是为了回答您的问题。一种方法是将服务绑定到活动,从活动中获取服务引用,在服务中实现一个方法,然后在调用 onKeyPress 时从活动中执行该方法。

    这是将活动绑定到服务的方式:ServiceBinder

    希望对您有所帮助。

    问候!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-23
      • 2017-03-06
      • 1970-01-01
      • 2014-07-27
      • 2013-12-14
      相关资源
      最近更新 更多