0

我有以下结构:

在 UIActivity1 中:

MyMyProgressDialogFragment progressDialog = MyMyProgressDialogFragment.newInstance();
progressDialog.show(getFragmentManager(),"dialog");
getFragmentManager().executePendingTransactions();
..do some heavy work and send messages to progressDialog

DialogFragment被创建并且这个片段中的ProgressBar开始旋转

但是,当我现在开始在创建对话框片段的活动中进行繁重的工作时,片段中的进度条会停止。

在阅读片段文档时,我了解到片段有自己的活动 - 与 Ui Activity1 相同。并且 afaik 每个活动都在一个单独的线程中运行。

那么为什么当 UIActivity1 开始繁重的工作时,对话框片段中的进度条会停止呢?

他们不应该是独立的吗?

ps 当我再次在不同的任务中运行 UIActivity 之外的繁重工作时,进度条一直在旋转而没有问题。

我在这里理解的错误在哪里?

谢谢!

4

1 回答 1

0

从您共享的信息中不清楚,但是看起来您正在 UI 线程中执行所有繁重的操作。那是活动的主线程。您使用片段衍生的活动是否旨在完成这项工作是无关紧要的,UI 线程必须用于更新 UI 元素,并且通常避免花费超过 100 - 200 毫秒的任务。这是根据 android Non-Responsive Application 文档。这可能是问题所在,任何长期存在或长期执行的任务都必须在后台线程中完成。

看看这个在 Android 中使用进度条的例子

于 2012-04-04T22:41:55.887 回答