这里是我的问题:安卓:如何让结果从服务早在开展活动
我有一个活动是用户输入一个“问题”
的数据 - 该活动推出一项服务(由意图)与问题的数据
- 该服务计算问题的解决方案
- 我想发送此解决方案的活动,以便它可以打印,如果在屏幕上。
问题是,我不想再次开始活动......你知道我该怎么做吗?
谢谢!
这里是我的问题:安卓:如何让结果从服务早在开展活动
我有一个活动是用户输入一个“问题”
的数据 - 该活动推出一项服务(由意图)与问题的数据
- 该服务计算问题的解决方案
- 我想发送此解决方案的活动,以便它可以打印,如果在屏幕上。
问题是,我不想再次开始活动......你知道我该怎么做吗?
谢谢!
如果用户在“解决方案”准备好之前输入“问题数据”后按下BACK或HOME,会发生什么情况?
如果答案是你不需要做任何事情,那么摆脱Service
,并让Activity
做计算解决方案的工作(可能使用AsyncTask
)。在这种情况下,您使用Service
没有获得任何收益。
然而,如果用户仍希望“解决方案”,然后用Service
是好的,但你必须考虑到启动该服务Activity
可能不再存在或可能不会在前台。
处理此问题的一种方法是使用有序广播。让Activity
在前台(通过onResume()
和onPause()
)为广播注册高优先级BroadcastReceiver
,并通过清单为同一广播注册低优先级BroadcastReceiver
。工作完成后,Service
将sendOrderedBroadcast()
。 Activity
- 注册BroadcastReceiver
将更新其用户界面与结果并中止广播。清单登记的BroadcastReceiver
将引发Notification
以让用户了解完成的工作。 Here is a blog post与更多关于这种模式,和here is a sample project演示其使用。