Intereting Posts
Можно ли использовать rsForEach RenderScript для ядра без полномочий root? Диалог прогресса не отображается на экране Конфигурация ProGuard для Guava с запутыванием и оптимизацией Создать объект из строки Gson не работает Добавить макет прогамально андроид Изменение цвета панели действий в android Установка USB-драйвера Android в Windows 7 Закончить дочернюю активность, когда родительская активность прекращается Почему в моем проекте не будут работать библиотеки поддержки Android? Как включить функцию OnClick в адаптере ListView в функции Activity URL-адрес фильтра андроидов в «прицельном фильтре» Передовые методы асинхронного программирования Ошибка: выполнение выполнено для задачи ': app: transformClassesWithDexForDebug'. > Com.android.build.api.transform.TransformException: .. ненулевое значение выхода 3 Почему появляется программная клавиатура Android, когда она появляется? Как протестировать IntentService с помощью Robolectric?

Как обрабатывать запросы на разрешение за пределами действия и фрагмента?

Я разрабатываю пользовательский составной вид, который должен получить доступ к внешнему хранилищу. Как я могу реализовать обработку разрешений без привлечения внешних сторон, то есть Activity или Fragment?

Я получаю, что я могу запрашивать разрешения с помощью контекста View, но как я могу обрабатывать onRequestPermissionsResult() внутри представления? Возможно ли это?

Если это невозможно, то какое было бы самым элегантным решением справиться с чем-то подобным?

Я разрабатываю настраиваемый составной вид, который должен иметь доступ к внешнему хранилищу

ИМХО, это ошибка архитектуры. View предназначен для отображения материала пользователю, а иногда и для сбора низкоуровневых входных событий и превращения их в конструкции более высокого порядка (например, щелчки, щелчки). В View не должно быть никакого соединения с файлами, базами данных и т. Д. См. Шаблоны архитектуры MVC, MVP, MVVM и аналогичных графических интерфейсов.

WebView , который не WebView этого, приводит к проблемам (например, выполнению WebView ввода-вывода на диске в основном потоке приложения).

Как я могу реализовать обработку разрешений без привлечения внешних сторон, то есть Activity или Fragment?

Вы не можете. Ответственность за действие или фрагмент лежит на запросе разрешения, предположительно до того, как ваше мнение нуждается в этих данных.

Что было бы самым элегантным решением для обработки чего-то подобного?

Извлеките часть доступа к данным этого View во что-то другое, которое управляется активностью или фрагментом, где можно управлять потоками, разрешениями и другими работами, связанными с этим доступом к данным.

Это возможно только в действиях и фрагментах.

Вы можете сделать копию public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) в вашем представлении и вызвать этот метод в соответствующем в Activity или Fragment, где находится контекст.