我在Android中请求权限后尝试执行片段事务 - 但应用程序不断崩溃.如何更改此代码以避免这种情况?
任何帮助表示赞赏.
在发送电子邮件之前检查许可:
private void emailShare() {
if (mayRequestContacts()) {
emailShareImpl();
}
}
Run Code Online (Sandbox Code Playgroud)
检查许可:
private boolean mayRequestContacts() {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {
return true;
}
requestPermissions(new String[]{READ_CONTACTS}, REQUEST_READ_CONTACTS);
return false;
}
Run Code Online (Sandbox Code Playgroud)
允许检查结果:
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == REQUEST_READ_CONTACTS) {
if (grantResults.length == 1 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
emailShareImpl();
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果获得批准,则启动碎片交易:
private void emailShareImpl() {
FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
EmailReferDialog mEmailReferDialog = new EmailReferDialog();
mEmailReferDialog.setCancelable(true);
mEmailReferDialog.show(fragmentManager, "EMAIL_REFER_DIALOG"); …Run Code Online (Sandbox Code Playgroud) android android-intent android-fragments android-permissions android-savedstate
android ×1