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

时间:2016-03-30 00:36:48

标签: android android-service android-service-binding android-sharedpreferences android-xmlpullparser

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

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

感谢。

1 个答案:

答案 0 :(得分:0)

我会使用广播意图进行通信。您可以在UI中使用ProgressBar默认隐藏,但如果数据尚不存在则显示。您在公交路线列表活动中注册BroadcaseReceiever(并在适当的位置取消注册),您的服务可以在广播意图完成后发送。如果没有注册接收它,它将无法得到处理。但是,如果您所描述的情况发生,则会通知您数据现已准备就绪。隐藏微调器,显示数据。