来自有界服务的 StartActivityForResult

StartActivityForResult from a bounded Service

我有一个绑定到 Activity A 的服务,我需要从这个服务调用一个 Activity B 并等待结果。

我设法这样称呼 activity B:

val intent = Intent(contextOfActivityA, ActivityB::class.java)
(contextOfActivityA as ComponentActivity).startActivityForResult(intent, 123)

问题是我不知道如何捕捉 ActivityB 的结果。 如果我使用 onActivity 结果永远不会被调用:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    if (resultCode == Activity.RESULT_OK) {
        //result
    }

我该怎么做?请记住,我只能控制服务,因此我无法修改或处理 Activity A.

中的结果调用

谢谢

这是不可能的。 Services 运行 作为 stand-alone 个实体,没有 UI 并执行后台活动。当 Service 启动 Activity 时,Activity 运行 在与 UI 关联的任务中。 Activity 可以启动另一个 Activity 并返回结果(使用 startActivityForResult()),但是 Service 是完全不同的事情。