其他分享
首页 > 其他分享> > Android系统服务侦听器是否已本地化到我的应用实例?

Android系统服务侦听器是否已本地化到我的应用实例?

作者:互联网

我正在使用SDK中的示例代码编写拼写检查客户端作为示例.我有以下代码(不是实际的实现,但是准确的示例表示):

public class HelloSpellChecker implements SpellCheckerSessionListener {
    private SpellCheckerSession mSpellCheckService;

    private void bindService() {
        final TextServicesManager tsm = (TextServicesManager) getSystemService(
            Context.TEXT_SERVICES_MANAGER_SERVICE);
        mSpellCheckService = tsm.newSpellCheckerSession(null, null, this, true);
    }        

    public void getSuggestions(String word) {
        mSpellCheckService.getSuggestions(new TextInfo("tgis"), 3);
    }

    @Override
    public void onGetSentenceSuggestions(final SentenceSuggestionsInfo[] arg0) {
        Log.d(TAG, "onGetSentenceSuggestions");
        // Process suggestions
    }
}

我想知道的是,只有当我的应用程序调用getSuggestions时才会触发onGetSentenceSuggestions,或者只要系统服务收到getSuggestions请求就会触发它?

如果是后者,那么确保我的应用程序仅处理其请求的建议的最佳方法是什么?

解决方法:

我想说Android系统服务监听器在这种情况下通过会话本地化.
任何getSuggestions方法的请求都会触发onGetSentenceSuggestions方法.但是,您不必担心应用程序请求的处理建议,因为拼写检查会话会处理它.您的应用仅获取您的应用创建的会话所请求的建议,以便与拼写检查服务进行互动.
希望这可以帮助.

参考文献:

> http://developer.android.com/reference/android/view/textservice/SpellCheckerSession.html
> http://developer.android.com/guide/topics/text/spell-checker-framework.html

标签:android,listener,android-service,spell-checking
来源: https://codeday.me/bug/20190629/1324824.html