Почему onStartInputView () вызывается, когда устройство заблокировано? - PullRequest
0 голосов
/ 14 февраля 2019

Я пишу собственный IME, и есть что-то, чего я не понимаю в его жизненном цикле .

onStartInputView() и onFinishInputView() должны вызываться, когда вид клавиатурыотображается и уничтожается соответственно.Они также вызываются, если пользователь изменяет приложение или текстовое поле, когда программная клавиатура включена.Это нормально.

Их странный случай таков:

  1. Учитывая, что на данный момент отображается программная клавиатура , и я набираю текст (например, в своем SMS-сообщении).приложение)
  2. Когда я блокирую свое устройство (выключаю экран)
  3. Тогда я вижу странные последовательности вызовов:
onFinishInputView(finishingInput=true)
onStartInputView(editorInfo, restarting=false)
onFinishInputView(finishingInput=true)
onStartInputView(editorInfo, restarting=false)

onStartInputView() - последний вызов, поэтому с точки зрения IME вид клавиатуры «видим», даже если мое устройство заблокировано (экран выключен).

Мой пользовательский IME должен точно знать, когда клавиатурабольше не отображается (например, для остановки фоновой обработки или отправки события закрытия сеанса ): как я могу это сделать, поскольку кажется, что я не могу положиться на onStartInputView()?

Спасибо!

...