我正在编写一个客户端程序,我在服务器中运行服务进行通信。
android硬件后退按钮可以通过OnKeyDown
方法或来自活动的OnBackPressed
方法进行控制。
但它是如何通过服务完成的?
答案 0 :(得分:0)
无法检测硬件" BACK"从服务中按。
如果您在前台有活动,则活动可以检测到BACK按下。 在这种情况下,您的活动会将您的活动的BACK Press传达给您的服务。
为什么会这样?
服务原则上是一个应用程序组件,用于在"背景"中执行长时间运行的操作。请参阅Android文档中的以下引用:
服务不提供用户界面。例如,一项服务 当用户处于不同的状态时,可能会在后台播放音乐 应用程序,或者它可能通过网络获取数据而不会阻止用户 与活动的互动
" Back"等行动press是用户驱动的,因此与用户界面密切相关,在Android中是User。
因此,Android框架提供与处理相关的API" Back"按使用活动而不使用服务。
几乎所有时间你的服务都不会在屏幕上显示自己的窗口。因此,服务无法接收后退按钮点击事件。
您可以阅读有关此LINK的一些有趣讨论。