输入法服务与普通服务一样,也有一个生命周期。
在选择输入法时,onCreate方法只调用一次,然后在输入控件处于焦点状态时,onCreateInputView和onCreateCandidatesView会各调用一次,然后会调用onStartInputView方法,这时会进入生命周期的一个循环。如果当前窗口有多个输入控件,焦点从弹出软键盘的输入控件切换到其他的输入控件时,系统会首先调用onFinishInput方法,然后会再次调用onStartInputView方法在新的输入控件获得焦点后显示软键盘。如果这时选择其他的输入法,系统就会调用onDestroy方法结束当前的输入法。因此,可以在onDestroy方法中加入释放输入法所使用的资源的代码。