【问题标题】:Android - Accessibility service VS Background serviceAndroid - 辅助功能服务 VS 后台服务
【发布时间】:2013-05-22 17:24:20
【问题描述】:

无障碍服务和后台服务有什么区别?什么时候应该互相使用?

【问题讨论】:

    标签: android android-service android-a11y


    【解决方案1】:

    两者的用途完全不同:

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

    辅助功能 - 许多 Android 用户具有不同的能力,需要他们以不同的方式与 Android 设备进行交互。其中包括因视觉、身体或年龄相关的限制而无法完全看到或使用触摸屏的用户,以及可能无法感知声音信息和警报的听力损失用户。

    无障碍服务在后台运行,并在触发 AccessibilityEvents 时接收系统回调。此类事件表示用户界面中的某些状态转换,例如焦点已更改、按钮已被单击等。此类服务可以选择请求查询活动窗口内容的能力。无障碍服务的开发需要扩展此类并实现其抽象方法。

    如果您认为用户在使用您的应用时需要特殊帮助,请使用辅助功能。为长时间运行的任务使用后台,让您的 UI 保持简洁。

    【讨论】:

    • 我可以从屏幕上得到什么信息,比如按下了哪个按钮?
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2022-11-30
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 2018-04-28
      相关资源
      最近更新 更多