我知道类似的问题已经在这里被问过好几次了,但我正在寻找一种解决方法。
考虑到“分享”功能。Google Photos 和其他应用程序为接收应用程序组件(即注册为共享接收器的已启动活动)授予 uri 权限。我的“共享接收器”需要将数据保存到磁盘,因此将 uri 交给处理后台保存的服务。然而,这就是令人讨厌的地方。当最初授予权限的活动死亡/不在前台时,uri 权限被撤销,服务在尝试访问数据时抛出 Securiy 异常。
我的标准方法是保持活动活跃,因为我还没有找到任何解决方法。但是,我没有任何指标(除了根据我的经验列出的“坏”提供者列表)来检查是否需要这样做,因为我不希望活动需要为所有文件保持活动状态。
TLDR: 所以:有没有办法
- a) 将 uri 权限“转移”到后台服务以避免活动保持活动解决方法
- 或 b) 检查当前上下文是否具有权限/哪些组件有权访问/需要保持活动状态......等等。
提前致谢!