0

我有一个具有这种结构的android应用程序:

活动 A、B、C、服务 S

当我在 Activity CI 上时,打开一个对话框,在其中插入一些数据。当按下 Ok 按钮时,我执行以下两个操作:

  1. 启动服务
  2. 调用一个 Intent 来启动 Activity A(即主要的 Activity)

在服务没有提供所有必要的数据之前,活动 A 将显示不一致的数据,并且所有按钮都将被禁用。我会这样,直到数据不可用,我才会显示进度条。

所以问题是我需要从 Activity C 中的对话框启动我的progressDialog,我需要将对话框“链接”到主要活动(A),而不是从服务中关闭这个progressDialog。

我该如何执行此任务?

4

1 回答 1

1

使用 LocalBroadcastManager 在 onStart 中注册它并在要与服务通信的 Activity 中的 onPause 中取消注册。在服务中计算昂贵的操作并在作业完成时发送广播。在活动 C 中显示进度对话框。当作业完成关闭进度对话框并启动 Activity A 时。或者您可以在 Activity A 的 onCreate 中检查一个标志,以了解它是否需要显示 progressDialog 以及服务 sendBroadcast 何时关闭 progressDialog。

于 2013-05-08T02:35:21.483 回答