Активность перезапускается каждый раз при отключении разрешения от настройки - PullRequest
0 голосов
/ 24 сентября 2018

Я занимаюсь разработкой приложения для Android со структурой: MainActivity-> FragmentA-> FragmentB-> Fragment C

Теперь во фрагменте C я перехожу к настройке разрешений и предоставляю доступ к камере для Deny, затем возвращаюПриложение.Я понимаю, что приложение перезапустилось (переход к фрагменту A).Можете ли вы дать мне любую причину и предложение, чтобы решить ее.

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Когда вы отменяете права доступа из настроек приложения - активность перезапускается и все ее компоненты тоже.Но в onCreate (...) saveInstanceState не равно нулю.

Таким образом, вы можете использовать такой взлом:

if (saveInstanceState! = Null) {

}

Использование вышеописанного хакерского приложения возобновляет последний фрагмент C.

0 голосов
/ 24 сентября 2018

Это что-то нормальное и ожидаемое в AOSP.Android убивает процесс приложения, сохраняя все состояния и фрагменты в FragmentManager, поэтому вы должны извлечь свой фрагмент из FragmentManager, в который вы отправляли фрагменты тура.См. Пример подхода:

// Try to retrieve fragment from fragment manager
ExampleFragment exampleFragment = (ExampleFragment) getSupportFragmentManager().findFragmentByTag("ExampleFragment");
// Fragment was not saved in fragment manager, create a new instance
if (exampleFragment == null) exampleFragment = ExampleFragment.newInstance();

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

...