1

我需要一个建议来实施以下情况:

显示两个不需要在UI Thread.

显示哪个对话框取决于第一次长时间运行操作的结果,而执行第二次长期运行操作取决于用户在对话框中选择的选项。我已经使用了两个AsynTask(如下所示)来完成此操作,但程序流程非常混乱。

有什么建议可以让这更容易吗?

  1. UI 线程调用 AsynTask AT1
  2. AT1 doInBackGround() 执行长时间运行的操作 1
  3. AT2 onPostExecute 显示对话框
  4. UI 线程处理对话框的结果(使用回调方法)并调用 AsynTask AT2
  5. AT2 doInBackGround() 执行长时间运行的操作 2
  6. AT2 onPostExecute 更改 UI。
4

1 回答 1

1

您可以使用自己的 AsyncTask 在单独的服务中运行每个任务,并让它们将结果发送到 UI 线程上的处理程序。

处理程序应包括决定如何处理输入的逻辑。

通信应该通过消息包或您创建的新 Parcellable 进行。

如果这些操作很长,您应该考虑用户将关闭对话框并全局通知他[来自应用程序或通知栏]

于 2013-01-09T08:36:35.650 回答