所有活动的一个装载机

时间:2011-09-27 12:23:28

标签: android android-service

我正在构建一个Android应用程序。它解析存储在DB中的提要。应用程序的每个活动都可以从数据库中获取此数据。

每个活动也可以调用服务,并使其刷新数据。完成后我想显示一个加载器。在下载服务时,用户仍然可以在活动之间自由导航。我的问题是;如何显示在用户导航到的所有活动中运行的加载程序?

非常感谢:)

2 个答案:

答案 0 :(得分:0)

这是我想要做的事情,因为这对我来说似乎是一个不寻常的任务:

我会尝试设置一个包含进度指示器的半透明PopupWindow。每当需要指示加载进度时,我会触发/关闭此弹出窗口是否显示...

答案 1 :(得分:0)

您可以尝试以下方式:

  • 在您的所有活动中放置“全局装载程序视图”。
  • 启动/返回活动时,触发将用于处理全局加载程序更新的AsyncTask
  • 覆盖onPreExecute()以准备全局加载程序(例如,如果服务已下载一段时间,则将其状态设置为当前级别)
  • 覆盖onProgressUpdate()并通过询问服务当前状态(负载百分比等)来使用它来更新全局加载器的状态
  • doInBackground中实施:

    while( service.isLoading() ) {
      publishProgress( service.getLoadPercentage() )
      // Maybe add a Thread.sleep() here.
    }
    
  • 覆盖onPostExecute以将全局加载程序的可见性设置为View.GONE。

如果用户在加载尚未完成时切换活动,您可能需要实现一种杀死AsyncTask的方法。