-1
私はこの質問を見ましたCan you request permissions synchronously in Android Marshmallow (API 23)'s runtime permissions model?答えはいいえだ。したがって許可リクエストの結果がAndroidで受信されるまでお待ちください
、私は以下のようにコード(簡易版)を追加しました:
public class MyActivity ... {
private boolean hasGotPermissionRequestResult = false;
@Override
public void onCreate(...) {
if (ContextCompat.checkSelfPermission(...) == PackageManager.PERMISSION_DENIED) {
ActivityCompat.requestPermission(...);
while (!hasGotPermissionRequestResult) {}
}
}
@Override
public void onRequestPermissionResult(...) {
// whether granted or not
hasGotPermissionRequestResult = true;
}
}
しかし、私は私のアプローチは、素敵な、安全かつ効率的であるかどうかを確認していません。
'while(!hasGotPermissionRequestResult){}'は 'onCreate'にありますか? ...基本的には安全ではありませんし、効率的でも効率的でもありません。 – Selvin
経験則:ビジーな待機ループは絶対に使用しないでください。特にUIスレッドではありません –