【发布时间】:2016-09-18 09:13:45
【问题描述】:
我有一个 Fragment,在它的 onStart() 处,我做了很多 BD 查询,这些查询长达 15 秒。我想显示一个带有“加载圈”的进度对话框。 我的应用程序只有一个 Activity,即 Main。这开始了第一个 Fragment,从这里开始,我跳到另一个 Fragment,下一个也是如此。为了从一个 Fragment 传递到另一个 Fragment,我使用了下一个静态方法。
public static startFragment(FragmentTransaction FT, Fragment newFragmentToOpen)
{
FT.replace(R.id.Container, newFragmentToOpen);
FT.addToBackStack(null);
FT.commit();
}
我尝试在该方法中创建一个线程以启动进度对话框,但它不起作用。我试图在 Fragment 的 OnCreate() 方法上启动对话框,但也没有用。
我能做什么?
谢谢。
(编辑) 我试图在片段内部的 onCreateView() 和 onViewCreated() 处启动进度对话框。它没有用,但是如果我逐步调试,我会看到当流程进入 onStart() (使用 DB 持续 10 秒)时,ProgressDialog 停止。
通过这个测试,我知道 ProgressDialog 正确显示,但是当我转到 onStart() 时,它消失了。
(编辑)
问题是,在 Fragment 的 onStart() 处,我正在处理视图,添加元素。我需要,在加载这些元素时,会显示一个对话框,因为现在,对于用户来说,应用程序在加载时似乎停止了。我需要这样的东西:
public static startFragment(FragmentTransaction FT, Fragment newFragmentToOpen)
{
startProgressDialog();
FT.replace(R.id.container, newFragmentToOpen);
FT.addToBackStack(null);
FT.commit();
stopProgressDialog();
}
但它不起作用,因为当 Fragment 的视图完全加载时,进度对话框才开始。
【问题讨论】:
-
请添加您之前尝试过的代码,有助于更好地理解问题。
-
代码太多了。正如我在帖子中所说,我的应用程序基于 Fragments。我有很多片段,一个接一个地被称为。为此,我使用了一种静态方法(在第一篇文章中显示)。在 Fragments 上,在 OnStart() 上我做了很多 DB 语句,然后我需要在它加载的 10 秒内显示一些东西。
标签: android android-fragments fragment progressdialog