Вызов appUpdateManager.completeUpdate () может сломать sh мое приложение, если я перейду на другой фрагмент / действие - PullRequest
0 голосов
/ 13 июля 2020

Я недавно попробовал Android API обновления в приложении здесь https://developer.android.com/guide/playcore/in-app-updates и вызвал appUpdateManager.completeUpdate() этот метод после успешной загрузки обновления, кажется, работает, если я останусь поместите в представление (фрагмент / действие) или оставьте свое приложение в фоновом режиме, но если я перейду к другому представлению своего приложения, оно выйдет из строя. Это похоже на реализацию Snackbar, пытающуюся найти представления, когда обновление не выполняется или отменяется, но я перехожу к другой фрагмент / активность. Есть ли более эффективный способ справиться с этим глобально в приложении? Его действительно сложно отлаживать, так как вам нужна внутренняя производственная сборка для тестирования.

Похожее решение, которое я могу придумать, - это то, как ведет себя тост, даже если вы уберете представление / действие, тост все равно будет отображаться пользователю, но я все еще хочу использовать Snackbar, а также должен вызвать completeUpdate (), если загрузка завершена, когда мой пользователь по-прежнему может свободно просматривать приложение, а не cra sh.

1 Ответ

0 голосов
/ 13 июля 2020

Snackbar требует отображения CoordinatorLayout (наиболее частое использование), это просто View, поэтому, когда вы хотите его показать, вам нужно активировать GUI на переднем плане. когда вы запускаете обновление приложения и перемещаетесь куда-нибудь, где Snackbar не может быть отображено, тогда возникает ваш Exception

Toast - это своего рода системная служба с возможностью отображаться поверх всего, совершенно другой подход . для отображения Toast достаточно Context

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