У меня есть приложение, которое получает обновления местоположения от текущего местоположения пользователей. Поэтому необходимо проверить, включены ли настройки местоположения. Инструкции описаны здесь: https://developer.android.com/training/location/change-location-settings
Лучшее место для проверки настроек местоположения для меня - это метод действия onResume()
, поскольку вполне возможно, что пользователь может изменять настройки во время работы приложения. в фоновом режиме.
Проблема с отображением диалогового окна onResume()
заключается в том, что каждый раз, когда пользователь выбирает «отменить», диалоговое окно отображается снова, потому что «отмена» вызывает метод onResume () действия. Это вызывает бесконечный цикл. (https://github.com/permissions-dispatcher/PermissionsDispatcher/issues/90)
Так называется диалог. У меня нет никаких ссылок, чтобы отклонить диалог, например, в методе onActivityResult
.
task.addOnFailureListener { exception ->
if (exception is ResolvableApiException){
// Location settings are not satisfied, but this can be fixed
// by showing the user a dialog.
try {
// Show the dialog by calling startResolutionForResult(),
// and check the result in onActivityResult().
exception.startResolutionForResult(this@MainActivity,
REQUEST_CHECK_SETTINGS)
} catch (sendEx: IntentSender.SendIntentException) {
// Ignore the error.
}
}
}
Любые другие идеиили решения о том, как проверять настройки местоположения каждый раз, когда приложение отображается?