Android - 辅助功能服务VS后台服务

时间:2013-05-22 17:24:20

标签: android android-service android-a11y

辅助功能服务和后台服务有什么区别?我什么时候应该互相使用?

2 个答案:

答案 0 :(得分:4)

这两者完全有不同的用途:

后台服务 - 除非您另行指定,否则您在应用中执行的大多数操作都会在名为UI线程的特殊线程的前台运行。这可能会导致问题,因为长时间运行的操作会干扰用户界面的响应能力。这会使您的用户烦恼,甚至可能导致系统错误。 Androind框架允许您在后台线程中运行这些类型的操作。

辅助功能 - 许多Android用户都有不同的能力要求他们以不同的方式与他们的Android设备进行互动。这些用户包括视力,身体或年龄相关的限制,以防止他们完全看到或使用触摸屏,听力损失的用户可能无法察觉到听觉信息和警报。

辅助功能服务在后台运行,并在触发AccessibilityEvents时由系统接收回调。这样的事件表示用户界面中的一些状态转换,例如,焦点已经改变,点击了按钮等。这样的服务可以可选地请求查询活动窗口的内容的能力。开发可访问性服务需要扩展此类并实现其抽象方法。

如果您认为用户需要对您的应用提供特殊帮助,请使用辅助功能。将背景用于长时间运行的任务,以保持UI的活泼。

答案 1 :(得分:0)

后台服务允许在 UI 不存在时执行(例如,当应用“关闭”时)。通过向用户显示长期存在的“前台”通知,可以获得能够长期保持活跃的“前台优先级”。 “前台/后台”优先级发生在进程级别,而不是线程级别。后台服务不会提高 UI 响应能力,因为它使用的主/ui 线程与任何活动一样多。任何其他线程都可以用来解决 UI 缺乏责任感。

无障碍服务是相同的,尽管它接收与用户交互相对应的一种特殊事件,并且需要用户通过设置手动设置(它不能以编程方式激活)。它不需要前台通知。