如何在Service中使用dispatchKeyEvent()?

时间:2014-04-20 17:14:21

标签: android service

我在我的活动中使用以下代码。

dispatchKeyEvent(new KeyEvent (KeyEvent.ACTION_UP, KeyEvent.KEYCODE_BACK));

Problem:

如何在服务中使用上述行代码。
我认为dispatchKeyEvent方法存在于Activity类中,而不存在于Service类中的Exist中。

所以其他任何方式或如何解决它。

2 个答案:

答案 0 :(得分:1)

  

如何在服务中使用上述行代码

你不能。

  

我认为dispatchKeyEvent方法存在于Activity类中,而不存在于Service类中的Exist中。

正确。服务没有UI,因此没有要调度的关键事件。

  

所以其他任何方式或如何解决它。

请勿尝试从服务发送密钥事件。在任何人使用它的情况下,dispatchKeyEvent()用于模拟活动自己的UI中的关键事件。欢迎您的服务告诉您的活动派遣重要活动。您可以使用事件总线实现(例如,greenrobot的EventBus)。

答案 1 :(得分:0)

dispatchKeyEvent和其他键事件仅在UI存在于诸如Activity和View类之类的类中时才起作用,而在Service中不起作用。这是出于安全目的。但是您可以使用辅助功能服务来做到这一点。

请参考以下链接:https://developer.android.com/training/game-controllers/controller-input