【问题标题】:Dialog Fragment Not Displaying on Launch启动时不显示对话框片段
【发布时间】:2013-07-31 19:32:17
【问题描述】:

所以我有一些应用程序,在启动时它会启动一个启动屏幕活动并检查用户帐户是否已链接到该应用程序。如果有应用程序启动主要活动并无声地绕过启动。如果没有用户帐户,它会在AsyncTask 中提取数据库并要求用户登录/创建帐户。

第一次启动时,应用程序与服务器同步并下拉数据库。我正在尝试获取带有不确定进度条的DialogFragment,以在下拉此数据库时显示。现在DialogFragment是在AsyncTaskonPreExecute()中创建的,AsyncTask是在Activity的onStart()方法中执行的,我遇到的问题是对话框没有被绘制到屏幕上。

我有调试日志显示对话框的onCreate() 正在执行并且同步成功。该对话框分别在onPreExecute()onPostExecute() 中显示/关闭,两者都在 UI 线程上执行。我意识到,如果数据库下载速度很快,这将不会显示很长时间,但我什至看不到模拟器中对话框的短暂闪烁。

这可能是模拟器的“问题”,其中所有对话框的帧都被跳过,或者我没有在实际绘制到屏幕的位置创建对话框。

【问题讨论】:

    标签: java android android-asynctask android-activity android-dialogfragment


    【解决方案1】:

    根据您的描述,我看到两个可能的原因:
    1. 可能你没有正确显示DialogFragment,见example
    2. AsyncTask 在不同的线程中启动(不在 UIThread 上),所以如果您需要访问 UIThread(从 AsuncTask),请尝试覆盖 onProgressUpdate 参见 tutorial
    希望对您有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-03
      • 2017-12-29
      相关资源
      最近更新 更多