gpt4 book ai didi

android - 具有后台处理功能的 ShareActionProvider

转载 作者:行者123 更新时间:2023-11-29 21:48:14 27 4
gpt4 key购买 nike

我有一个图库应用程序,它可以处理比 Android native 更多的图像格式。我想添加一个共享选项,允许用户以 jpeg 格式共享任何选定的图像。我更喜欢使用 ShareActionProvider,因为它可以很好地与 UI 集成。

问题来了。输出 jpeg 需要一个后台进程来转换图像。我不能在每次用户添加选择时简单地进行转换,因为这会使应用程序陷入困境并且他们可能最终不想共享。据我所知,一旦单击该操作,就无法拦截 ShareProvider。在这一点上,它似乎必须填充任何必要的 URI。

有没有人想出一种在执行 ShareActionProvider 之前处理必要后台处理的方法?

我已经用尽了很多想法:

  1. onShareTargetSelected(ShareActionProvider, Intent),但这不允许对 Intent 进行任何修改,甚至不允许修改 URI 包。
  2. 自定义 Intent,先触发 AsyncTask,然后再触发共享 Intent,但无法访问用户选择的处理程序。

在这一点上,我相当确定我需要实现一个带有共享选择器的经典 Action 项目,但我想看看是否有人为此提出了一个聪明的解决方案。谢谢大家!

最佳答案

您提供给 ShareActionProvider 的 URI 也可以引用自定义的 ContentProvider。您只需将所有转换参数编码到 URI 中并覆盖 ContentProvider 中的 openFile() 方法。通过这种方式,您可以推迟转换,直到用户实际分享。

使用此解决方案似乎没有必要使用任何后台进程。

关于android - 具有后台处理功能的 ShareActionProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15172003/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com