Android 9 заморожен интерфейс после разблокировки экрана - PullRequest
2 голосов
/ 01 апреля 2019

Я создаю приложение таймера, у меня есть viewmodel, который обрабатывает данные таймера (реализованные с помощью rxjava) и хранит их в объекте livingata, затем есть фрагмент, который подписывается на эти liveata и показывает их в виде.

Таким образом, поток работает так, что таймер работает где-то в viewmodel, и текущее оставшееся время выставляется на просмотр посредством liveata. Я проверяю, что таймер все еще работает, даже если я поворачиваю экран, блокирую экран и возвращаюсь и так далее.

В Android 9, если я заблокирую экран и затем вернусь к нему, пользовательский интерфейс будет заморожен - обновления из данных таймера не отображаются в представлениях. Я регистрирую, что фрагмент действительно получает эти обновления таймера, но по некоторым причинам он не отображается в представлениях. Я смог воспроизвести его только на Android 9.

код фрагмента:

class TomatoFragment : BaseFragment<FragmentTomatoBinding, TomatoFragmentViewModel>(), OnBackPressedCallback {

companion object {
    fun newInstance() = TomatoFragment()
}

override val viewModelClass = TomatoFragmentViewModel::class.java
override val layoutId = R.layout.fragment_tomato

////// some stuff

override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
    super.onViewCreated(view, savedInstanceState)
    viewModel.initTomato()

    initObservers()
}

private fun initObservers() {
    observe(viewModel.getViewData()) {
        val newText = it.getMainActionText(extendedFabTomatoSession.context)
        extendedFabTomatoSession.text = newText

        Log.d("SRA4KA", "time left: ${it.getShownTimeFormatted(requireContext())}")
        textTomatoTimeLeft.text = it.getShownTimeFormatted(requireContext())
    }

 // some other stuff   
}

Это кажется странным, потому что я буквально записываю, что текст устанавливается, но на экране ничего не меняется. Я записал видео об этом: https://youtu.be/l9kUexJKyaY

UPDATE Я искал трекер проблем Google и обнаружил https://issuetracker.google.com/issues/118178434, что может быть такой же / похожей проблемой

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...