Что происходит, когда мы меняем разрешение вручную из стороннего приложения в Android - PullRequest
1 голос
/ 28 июня 2019

Недавно я столкнулся с проблемой при изменении разрешения вручную из-за пределов приложения, когда приложение находится в фоновом режиме.Это приводит к ошибке и теряет ее состояние.

Я искал S / O для идеальной стратегии для решения этой проблемы, но не смог найти исчерпывающий ответ по этому поводу.Некоторые говорят, что процесс воссоздается.

Кто-нибудь может рассказать мне об этой проблеме?

Я хочу точно знать, что происходит в этом сценарии и как сохранить состояние и данные, пока пользователь меняет разрешение вручную и возвращается в приложение.

Спасибо.

Ответы [ 3 ]

0 голосов
/ 28 июня 2019

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

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

0 голосов
/ 28 июня 2019

Недавно я столкнулся с проблемой при изменении разрешения вручную из-за пределов приложения, когда приложение находится в фоновом режиме.Это приводит к ошибке и теряет свое состояние.

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

Я искал S / O для идеальной стратегии для решения этой проблемы, но не смог найти исчерпывающий ответ по этому поводу.Некоторые говорят, что процесс воссоздается.

Хорошо, рекомендуемый подход из официальной документации Android для подобных сценариев очень прост -

вам придется тестировать ваше приложение в более широком диапазоне условий.

До Android 6.0 вы могли разумно предположить, что если ваше приложение вообще работает, оно имеет все разрешения, которые оно объявляетв манифесте приложения.Начиная с Android 6.0, пользователь может включать или отключать разрешения для любого приложения.Вы должны проверить, чтобы убедиться, что ваше приложение функционирует правильно, независимо от того, имеет ли оно какие-либо разрешения.

Короче говоря - Протестируйте приложение полностью - с особым вниманием к1. текущие разрешения вашего приложения и соответствующие пути кода и2. пользователь перемещается через защищенные разрешениями сервисы и данные.

0 голосов
/ 28 июня 2019

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

...