如何处理Activity和Fragment之外的权限请求?

我正在开发需要访问外部存储的自定义复合视图。 我如何在不涉及外部参与方的情况下执行权限处理,即活动或片段?

我得到,我可以使用视图的上下文请求权限,但我怎样才能处理视图内的onRequestPermissionsResult() ? 它甚至有可能吗?

如果这不可能,那么处理这种事情的最优雅的解决方案是什么?


我正在开发需要访问外部存储的自定义复合视图

恕我直言,这是一个架构错误。 View用于向用户显示内容,有时用于收集低级输入事件并将其转换为高级构造(例如点击,滑动)。 View不应该与文件,数据库等有任何关联。请参阅MVC,MVP,MVVM和类似的GUI架构模式。

WebView不遵守这一点,因此导致问题(例如,在主应用程序线程上执行磁盘I / O)。

我如何在不涉及外部参与方的情况下执行权限处理,即活动或片段?

你不能。 活动或片段有责任请求权限,可能在您的视图需要此数据之前。

处理这样的事情最优雅的解决方案是什么?

将此View的数据访问部分提取到由活动或片段管理的其他内容中,其中可以管理与该数据访问关联的线程,权限和其他工作。


只有在活动和片段中才有可能。

你可以做的是在View中复制public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) ,并在Context或者Activity所在的Activity或Fragment对应的方法中调用该方法。

链接地址: http://www.djcxy.com/p/91293.html

上一篇: How to handle permission requests outside Activity and Fragment?

下一篇: Rotate multiple PDFs and write to one single PDF