我有一个图库应用程序,它可以处理比 Android 更多的图像格式。我想添加一个共享选项,允许用户将任何选定的图像共享为 jpeg。我更喜欢使用 ShareActionProvider,因为它与 UI 很好地集成在一起。
这就是问题所在。要输出 jpeg,需要一个可以转换图像的后台进程。每次用户添加选择时,我都不能简单地转换,因为它会使应用程序陷入困境,他们最终可能不想分享。据我所知,一旦单击操作,就无法拦截 ShareProvider 。此时,它似乎必须填充任何必要的 URI。
有没有人想出在 ShareActionProvider 执行之前处理必要的后台处理的方法?
我已经用尽了很多想法:
- onShareTargetSelected(ShareActionProvider, Intent),但这不允许对意图进行任何修改,甚至是 URI 包。
- 触发 AsyncTask 然后是共享意图的自定义 Intent,但无法访问用户选择的处理程序。
在这一点上,我相当肯定我需要使用共享选择器实现一个经典的操作项,但我想看看是否有人提出了一个聪明的解决方案。多谢你们!