如何从android中的服务处理硬件后退按钮

时间:2015-01-30 10:03:43

标签: java android back

我正在编写一个客户端程序,我在服务器中运行服务进行通信。 android硬件后退按钮可以通过OnKeyDown方法或来自活动的OnBackPressed方法进行控制。 但它是如何通过服务完成的?

1 个答案:

答案 0 :(得分:0)

无法检测硬件" BACK"从服务中按。

如果您在前台有活动,则活动可以检测到BACK按下。 在这种情况下,您的活动会将您的活动的BACK Press传达给您的服务。

  

为什么会这样?

服务原则上是一个应用程序组件,用于在"背景"中执行长时间运行的操作。请参阅Android文档中的以下引用:

  

服务不提供用户界面。例如,一项服务   当用户处于不同的状态时,可能会在后台播放音乐   应用程序,或者它可能通过网络获取数据而不会阻止用户   与活动的互动

" Back"等行动press是用户驱动的,因此与用户界面密切相关,在Android中是User。

因此,Android框架提供与处理相关的API" Back"按使用活动而不使用服务。

几乎所有时间你的服务都不会在屏幕上显示自己的窗口。因此,服务无法接收后退按钮点击事件。

您可以阅读有关此LINK的一些有趣讨论。