окно запроса разрешения принудительно остановить приложение
Мне нужно вручную запросить разрешение для API уровня 23 и где появляется диалоговое окно и приложение переходит в фоновый режим.
Вот мой код:
@Override
public void onDialogDone(int dialog, boolean result) {
DialogFragment newFragment;
switch (dialog) {
case EULA_DIALOG:
if (result) {
boolean numberExists = _appRegistration.checkPhoneNumber();
if (!numberExists) {
ActivityCompat.requestPermissions(MainActivity.this,
new String[]{Manifest.permission.READ_PHONE_STATE},
MY_PERMISSIONS_PHONE_STATE_READ);
return;
} else {
//do some work
}
} else {
Intent intent = new Intent(...);
startActivity(intent);
finish();
}
break;....
}
}
Кроме того, в MainActivity я переопределил следующий метод:
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
switch (requestCode) {
case MY_PERMISSIONS_PHONE_STATE_READ: {
if (grantResults.length > 0
&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {
// do some work
} else {
// do some work
}
return;
}
}
Но если я нажимаю "разрешить" или "запретить", этот метод не вызывается, потому что приложение находится в фоновом режиме... Я зарегистрировал методы onPause
и onStop
, и оба они вызываются после отображения окна разрешений.