日期:2014-05-16  浏览次数:20933 次

Android 2.2 API 中文文档系列(3) —— AccessibilityService

正文

  一、结构

  java.lang.Object

  ?? ? ? android.content.Context

? ? ? ? ?   ?? ? ? ? android.content.ContextWrapper

? ? ? ? ? ? ? ?   ?? ? ? ? android.app.Service

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? android.accessibilityservice.AccessibilityService

  public abstract class AccessibilityService extends Service

  二、类概述

  当AccessibilityEvent事件被启动后AccessibilityService 会接收回调函数运行于后台,这些事件指的是在用户接口间的状态转换,比如,焦点变化,按钮被点击等。一些辅助服务继承于此类并且实现它的抽象方法,像这样的一个服务和其他服务一样在AndroidManifest.xml中被声明但它必须被指定操纵

android.accessibilityservice.AccessibilityService的意图,下面的是一段例子:

  1. <service android:name=".MyAccessibilityService">
  2. <intent-filter>
  3. <action android:name="android.accessibilityservice.AccessibilityService" />
  4. </intent-filter>
  5. </service>
复制代码

辅助服务的声明周期只能被系统管理,启动或者停止这个服务必须由明确的用户通过启用或停用设备的设定,在系统通过呼叫onServiceConnected()方法与服务绑定后,这个方法才能被想要执行装载的客户端所重载使用,一个辅助服务通过呼叫setServiceInfo(AccessibilityServiceInfo)方法来设定AccessibilityServiceInfo而配置。你可以在任何时候改变这个服务的配置但最好是在重载方法onServiceConnected().中来使用。

一个辅助服务可以在特定的包中注册事件以提供特殊的反馈类型并且当最后一个关联的事件被解除的时候发出明确的超时提醒。

  三、通告策略

  对于每个回馈类型只有一个辅助服务被通知,服务登记处按顺序被通知,因此,如果有两个服务为同一个包中的同一回馈类型注册那么第一个会被通知,然而有可能的是,可以为一个给定的回馈类型去把一个服务注册为默认的,这样的话如果没有其他的服务来取代这个事件这个服务就会被呼出使用,换句话说,默认的服务不会与其他的服务竞争并且不管注册的顺序而被通知。

  四、公共方法:

  4.1? abstract void onAccessibilityEvent(AccessibilityEvent event)

? ? ? ? Callback for AccessibilityEvents.

? ? ? ? 参数? event 一个事件

  4.2? public final IBinder onBind (Intent intent)

? ? ? ? 实现返回一个内部的辅助接口的实现,子类不能被重写。

参数 intent 与服务相绑定的意图,注意其他任何包含在Intent的外部意图将不能在此使用。

返回值? 返回一个客户端可以在服务上访问的IBinder。

? ? ? ? 4.3? public abstract void onInterrupt ()

? ? ? ? ? ? ? ? ? 打断辅助回馈内容时呼叫。?

  五、保护方法:

  5.1? protected void onServiceConnected ()
       这个方法是AccessibilityService声明周期的一部分,在系统成功与服务绑定后才被呼叫,如果用来设定AccessibilityServiceInfo.这个方法更为方便。

  六、Word版本下载:
附件: Android 2.2 API 中文文档系列(3) —— AccessibilityService.rar (下载 19 次)

结束