把你的逻辑放在它自己的函数中,在
onCreate()
.
private void doStuff() {
//whatever
}
onCreate()
@Override
public void onCreate(Bundle savedInstanceState) {
//...
if (checkSelfPermissions(/*whatever*/) {
doStuff();
} else {
requestPermissions(/*whatever*/);
}
//nothing dependent on runtime permissions after this point
}
然后重写
onRequestPermissionsResult()
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == /*whatever you set in requestPermissions()*/) {
if (!Arrays.asList(grantResults).contains(PackageManager.PERMISSION_DENIED)) {
//all permissions have been granted
doStuff(); //call your dependent logic
}
}
}