gpt4 book ai didi

安卓 : how to get result back from service in the launching activity

转载 作者:行者123 更新时间:2023-11-29 18:13:23 25 4
gpt4 key购买 nike

这是我的问题:

我有一项 Activity 是用户输入“问题”的数据
- 此 Activity 使用问题数据启动服务(有意)
- 服务计算问题的解决方案
- 我想将此解决方案发送到 Activity ,以便它可以在屏幕上打印。

问题是我不想再次开始 Activity ……你知道我该怎么做吗?

谢谢!

最佳答案

如果用户在输入“‘问题’的数据”后,在“解决方案”准备好之前按 BACK 或 HOME,会发生什么情况?

如果答案是您不需要做任何事情,那么摆脱 Service,让 Activity 来计算解决方案(也许使用 AsyncTask)。在这种情况下,您不会通过使用 Service 获得任何 yield 。

但是,如果用户仍然想要“解决方案”,那么使用 Service 就可以了,但是您必须考虑到启动的 Activity该服务可能不再存在或可能不在前台。

处理此问题的一种方法是使用有序广播。让 Activity 在前台为广播注册一个高优先级的 BroadcastReceiver(通过 onResume()onPause( )),并通过 list 为同一广播注册一个低优先级的 BroadcastReceiverService 将在其工作完成时 sendOrderedBroadcast()Activity 注册的 BroadcastReceiver 将使用结果更新其 UI 并中止广播。 list 注册的 BroadcastReceiver 将引发一个 Notification 让用户知道已完成的工作。 Here is a blog post有关此模式的更多信息,以及 here is a sample project展示了它的用途。

关于安卓 : how to get result back from service in the launching activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9547263/

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