Android
平台提供能够让你在应用程序中执行和访问拼写检查的拼写检查器框架。这个框架是由Android平台提供的文本服务API之一。
要在应用程序中使用该框架,你就要创建一个特殊的Android服务类型,该服务会生成一个拼写检查器的session对象。基于你提供的文本,该session对象会返回由拼写检查器生成的拼写建议。
拼写检查器的生命周期
下图显示了拼写检查器服务的生命周期:
![\](http://up.2cto.com/2012/1228/20121228014159806.png)
图1.拼写检查服务的生命周期。
要进行拼写检查,你的应用程序就要启动它的拼写检查器的实现。客户端在应用程序中,如Activity或独立的UI元素,首先从服务端申请一个拼写检查的session,然后使用这个session来获得对应文本的拼写建议。当客户端终止了它的操作时,它要关闭它的用于拼写检查的session。如果需要,你的应用程序可以在任何时候关闭拼写检查服务器。
实现一个拼写检查器的服务
要在你的应用程序中使用拼写检查器的框架,就要添加一个包含session对象定义的拼写检查服务
组件。你还可以给你的应用程序添加一个控制设置的可选的Activity。你好必须要添加一个描述拼写检查服务的XML元数据文件,并且把对应的元素添加到清单文件中。
拼写检查器的类
使用下面的类来定义服务和session对象:
SpellCheckerService的子类:
SpellCheckerService类实现了Service类和拼写检查器框架的接口。在你的子类中,你必须实现下面的方法:
createSession()
这个一个工厂方法,它能够给想要做拼写检查操作的客户端返回一个SpellCheckerService.Session对象。
这个类实现的更多的信息请看Spell Checker Service示例应用
SpellCheckerService.Session
这是一个拼写检查服务提供给客户端的对象,用它把文本传递给拼写检查器并接收拼写建议。在这个类中,你必须实现以下方法:
onCreate()
在对createSession()方法的响应中,
系统会调用这个方法,在这个方法中,你可以基于当前的语言环境等来初始化SpellCheckerService.Session对象。
onGetSentenceSuggestionsMultiple()
这个方法执行实际的拼写检查。这个方法会返回SentenceSuggestionsInfo对象的数组,其中包含了对传入句子的拼写建议。
你可以有选择的实现onCancel(),这个方法处理取消拼写检查的请求,onGetSuggestions()用于处理一个单词的建议请求,onGetSuggestionsMultiple()用于批量处理单词建议的请求。
注意:你必须用异步和线程安全的方式来全面的实现拼写检查。一个拼写检查器可以同时被运行在不同核心上的不同线程来调用。SpellCheckerService和SpellCheckerService.Session对象会自动的完成此事。