2011-04-07 68 views
1

我的应用程序有一个服务和一组活动。活动同步

每个活动都包含一个小任务(例如要求用户插入一个数字,一个文本或表示一个首选项)。

服务启动活动或一组子活动。

服务开始活动的顺序随日间时间而改变。

但是每次服务都必须等待活动结束(以获取活动结果)才能开始下一个活动。

我的想法是在两个活动执行之间的服务中使用wait()调用。

每个活动使用sendBroadcast将结果返回到BroadcastReceiver

BroadcastReceiver执行notify()来释放服务并将活动结果转发给服务。

很明显,这个想法不起作用。问题是:

1)从服务启动许多活动会导致与每个活动所属的任务相关的问题。

2)我不知道如何通过从BroadcastReceiver信息到Service(在我第一次宣布BroadcastReceiverService类中,但是当服务进入wait()进程仍然受阻,BroadcastReceiver永远不会接收)。

请接受各种建议。也许应用程序体系结构发生了变化?

谢谢

回答

0

流程通常是一个触发下一个的活动。您应该重新设计架构,以便当您准备完成()activity1时,您已经知道Activity2是什么,并且从Activity1开始它。也许你的服务应该公开一种你的活动可以调用的方法来获得应该是下一个活动的决心。可以这样做,因为服务和活动在相同的过程中运行,并且可以互相呼叫。