首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >处理没有UI活动的临时Uri

处理没有UI活动的临时Uri
EN

Stack Overflow用户
提问于 2018-10-02 22:13:18
回答 1查看 25关注 0票数 0

我的应用程序处理用户共享的Uri (注册为intent.action.SENDintent.action.SEND_MULTIPLE)

我使用TCP解析和发送这些文件,但我想完全在后台完成。

由于一些Uri的工作很好,我尝试分享Google的照片,并获得了Permission Daniel异常,因为我的活动在完成Uri数据处理之前就被破坏了。

我尝试过启动一个服务,认为Uri权限可能会被“保存”,但我想它不是。

有什么方法可以不显示阻塞的UI活动来处理Uri吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-02 22:35:18

我想完全在后台做这件事。

ACTION_SENDACTION_SEND_MULTIPLE是活动行为。你别无选择,只能有一个处理它们的活动。欢迎您让该活动使用Theme.Translucent.NoTitleBar作为“不可见的”活动,但它仍然存在,并且仍然占据着前景。通常,这样的活动在onCreate()中会做一些简短的事情,比如启动一些背景工作并显示一个Toast,然后使用finish()离开。

我尝试过启动一个服务,认为Uri权限可能会被“保存”,但我想它不是

FLAG_GRANT_READ_URI_PERMISSION添加到用于启动服务的Intent上,并将Uri放在Intent的“数据”方面

代码语言:javascript
复制
new Intent(this, YourServiceClass.class)
  .setData(yourUri)
  .addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)

然后,通过调用Uri上的getData()在服务中获取Intent。标志将活动的读取权限传递给服务,服务应该能够使用ContentResolveropenInputStream()读取内容。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52617167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档