Android:长期运营之间的对话

时间:2013-01-09 08:19:36

标签: android android-asynctask android-dialog

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

在两个长期运行(SQLite数据库和网络操作)之间显示一个对话框,该对话框需要不在UI Thread中执行。

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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

通讯应通过消息或您创建的新Parcellable进行捆绑。

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