【问题标题】:What is the best way to handle this background process while updating UI?在更新 UI 时处理此后台进程的最佳方法是什么?
【发布时间】:2016-03-30 00:36:48
【问题描述】:

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

启动器活动是一个地图,但如果在第一次启动应用程序时,用户导航到“所有公交路线列表”活动,那么在解析 XML 时屏幕将是空白的。如果他们的数据连接速度很慢,那么它将保持空白一段时间。我正在考虑在服务完成时显示一个旋转加载器,然后在 UI 中显示列表,但我不确定如何将旋转加载器同步到后台服务。任何有关如何解决此问题的建议将不胜感激。

谢谢。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-12-02
      • 2022-01-11
      • 1970-01-01
      • 2016-08-10
      • 2018-07-08
      • 2010-09-06
      • 1970-01-01
      相关资源
      最近更新 更多