【发布时间】:2017-02-09 03:57:40
【问题描述】:
我见过这样的问题Can you request permissions synchronously in Android Marshmallow (API 23)'s runtime permissions model?。答案是否定的。
因此,我添加了如下代码(简化版):
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) {}inonCreate? ...基本上它既不好也不安全也不高效...而且prolly不会工作 -
经验法则:永远不要使用忙等待循环。尤其是在 UI 线程上
标签: android