Почему все действия могут быть закрыты? - PullRequest
0 голосов
/ 25 января 2019

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

Я пытался установить точки останова для обратных вызовов onActivityStopped() и onStop(), и они действительно вызывались, но я не вижу, где и как этот процесс начинается.

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

Есть идеи, почему это может происходить и как это отладить?

1 Ответ

0 голосов
/ 29 января 2019

Я наконец понял проблему.Запуск обновлений местоположения с помощью метода onResume() приводил к приостановке действия, а затем возобновлялся до бесконечности, когда службы определения местоположения были отключены.

Я думаю, что происходило:

  • Права доступа к местоположению были запрошены у метода onResume() действия.
  • Это вызывает вызов onPause() в действии, когда должен отображаться диалог местоположения, даже если мы знаем, что его больше нет, потому что мы ужеотказал им.
  • Затем вызывается onResume(), и цикл увековечивается.

В какой-то момент, если вы вообще взаимодействуете с действием, система его закроет (вместе сдругие) по какой-то причине я не до конца понимаю.

Я думаю, что TL; DR - это: избегать запуска служб определения местоположения с onResume().

Некоторые на первый взглядсвязанные с этим проблемы: Запрос разрешений вызывает бесконечный цикл в OnResume и https://github.com/permissions-dispatcher/PermissionsDispatcher/issues/90

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