来自有界服务的 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.
中的结果调用
谢谢
这是不可能的。 Service
s 运行 作为 stand-alone 个实体,没有 UI 并执行后台活动。当 Service
启动 Activity
时,Activity
运行 在与 UI 关联的任务中。 Activity
可以启动另一个 Activity
并返回结果(使用 startActivityForResult()
),但是 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.
中的结果调用谢谢
这是不可能的。 Service
s 运行 作为 stand-alone 个实体,没有 UI 并执行后台活动。当 Service
启动 Activity
时,Activity
运行 在与 UI 关联的任务中。 Activity
可以启动另一个 Activity
并返回结果(使用 startActivityForResult()
),但是 Service
是完全不同的事情。