尽管问了类似的问题,但我有不同的情况:我的应用程序主要由背景组成Service
.我想开始外部活动并取回结果.
我看到几个选项:
创建虚拟Activity
并保持对它的引用以使用它startActivityForResult
.据我们所知,这会占用大量内存.
使用Broadcast Intents
而不是Android的结果基础架构:要求客户端活动在关闭之前广播其结果.这种打破了这个想法而不是那么高效.
Instrumentation
直接使用- 尝试将startActivityForResult中的代码复制到我的服务中.
使用服务接口 - 序列化并添加AIDL
与Intent的连接以启动活动.在这种情况下,Activity应该直接调用Service而不是提供结果.
第三种方法让我感觉更接近Android,但我不确定它是否可行 - 服务没有它的Instrumentation,并且默认实现似乎总是返回null.
也许你还有其他想法吗?
android ×1