Bắt đầu với Android 6.0, các quyền được yêu cầu trong thời gian chạy chứ không phải trước khi cài đặt.hiển thị giải thích quyền không đồng bộ
Android official doc khuyến đoạn mã sau:
// Here, thisActivity is the current activity
if (ContextCompat.checkSelfPermission(thisActivity,
Manifest.permission.READ_CONTACTS)
!= PackageManager.PERMISSION_GRANTED) {
// Should we show an explanation?
if (ActivityCompat.shouldShowRequestPermissionRationale(thisActivity,
Manifest.permission.READ_CONTACTS)) {
// Show an explanation to the user *asynchronously* -- don't block
// this thread waiting for the user's response! After the user
// sees the explanation, try again to request the permission.
} else {
// No explanation needed, we can request the permission.
...
}
}
Tôi đang bối rối về một điều trong mã mẫu ở trên, đó là lý do tại sao những nhận xét trên cho biết "Hiện một lời giải thích cho người dùng không đồng bộ"? Đó có phải là một quy ước để làm theo không? Tôi có nghĩa là nếu tôi chỉ có kế hoạch bật lên một hộp thoại để giải thích tại sao sự cho phép là cần thiết, tôi không thấy cần phải bật hộp thoại không đồng bộ. Tôi chỉ không hiểu tại sao google đề xuất mã không đồng bộ ở đó.
Có phải Google cho biết không muốn hộp thoại bật lên của nhà phát triển ở đó nhưng thực hiện một số hành động nặng? hmm ... dù sao, khá khó hiểu về điều này.
Vì vậy, khi hiển thị giải thích bằng hộp thoại, tôi không cần sử dụng ví dụ: AysncTask bật lên hộp thoại vì nó đã là một cuộc gọi không đồng bộ? –
@ Leem.fin: Bạn không cần phải gọi 'show()' để hiển thị hộp thoại từ chuỗi nền, chẳng hạn như 'AsyncTask'. – CommonsWare