在更新UI时,处理此后台过程的最佳方法是什么



我的应用程序将每两周从后台的公交API更新一次公交路线列表,作为一项服务,并将该列表存储在共享引用中。当用户第一次启动应用程序时,应用程序将在后台启动一项服务,该服务将下载XML数据,对其进行解析,并将路由作为ArrayList存储在sharedpreferences文件中。

启动器活动是一个地图,但如果在第一次启动应用程序时,用户导航到"所有公交路线列表"活动,则在解析XML时屏幕将为空白。如果他们的数据连接速度较慢,那么它将在一段时间内保持空白。在UI中显示列表之前,我想在服务完成时显示一个旋转加载程序,但我不知道如何将旋转加载程序同步到后台服务。任何关于如何处理这个问题的建议都将不胜感激。

谢谢。

我会使用广播意图进行通信。用户界面中可以有一个默认隐藏的ProgressBar,但如果数据还不存在,则会显示它。您可以在巴士路线列表活动中注册BroadcastReceiever(并在适当的地方注销),当它完成时,您的服务可以发送广播意图。如果没有任何注册来接收它,它就不会得到处理。但是,如果发生了您所描述的情况,则会通知您数据现在已经准备好了。隐藏微调器,显示数据。

最新更新