Я столкнулся с некоторыми проблемами с разрешениями андроида. Проблема в том, что onResume вызывается каждый раз, когда onRequestPermissionsResult вызывается, даже если пользователь уже сказал "Никогда не спрашивать снова".
Пример:
@Override
public void onResume() {
super.onResume();
startLocationProvider();
}
private void startLocationProvider() {
if ( !locationService.requestLocationPermission( this, 0 ) ) {
return;
}
@Override
public void onRequestPermissionsResult( int requestCode, String[] permissions, int[] grantResults ) {
if ( requestCode == 0 ) {
if ( grantResults.length == 1 && grantResults[ 0 ] == PackageManager.PERMISSION_GRANTED ) {
startLocationProvider();
}
}
Он отлично работает, пока пользователь не выберет "Никогда не спрашивать снова" и отрицает. Я не знаю, почему onResume вызывается снова и снова, хотя пользователю не отображается диалог.