0

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

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

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

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

4

1 回答 1

0

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

于 2013-07-31T19:43:31.143 回答