Java 启动时未显示对话框片段
因此,我有一些应用程序,在启动时,它会启动一个启动屏幕活动,并检查用户帐户是否已链接到该应用程序。如果有人让应用程序启动主活动,并悄无声息地绕过飞溅。如果没有用户帐户,它将在Java 启动时未显示对话框片段,java,android,android-asynctask,android-activity,android-dialogfragment,Java,Android,Android Asynctask,Android Activity,Android Dialogfragment,因此,我有一些应用程序,在启动时,它会启动一个启动屏幕活动,并检查用户帐户是否已链接到该应用程序。如果有人让应用程序启动主活动,并悄无声息地绕过飞溅。如果没有用户帐户,它将在AsyncTask中下拉数据库,并要求用户登录/创建帐户 在第一次启动时,应用程序与服务器同步并关闭数据库。我正在尝试获取一个带有不确定进度条的对话框片段,以便在下拉此数据库时显示。现在,在AsyncTask的onPreExecute()中创建了DialogFragment,在活动的onStart()方法中执行了AsyncT
AsyncTask
中下拉数据库,并要求用户登录/创建帐户
在第一次启动时,应用程序与服务器同步并关闭数据库。我正在尝试获取一个带有不确定进度条的对话框片段
,以便在下拉此数据库时显示。现在,在AsyncTask
的onPreExecute()
中创建了DialogFragment
,在活动的onStart()
方法中执行了AsyncTask
。我遇到的问题是对话框没有被绘制到屏幕上
我的调试日志显示对话框的onCreate()
正在执行,同步成功。对话框分别在onPreExecute()
和onPostExecute()
中显示/取消,这两个对话框都在UI线程上执行。我意识到,如果数据库下载速度很快,它不会显示很长时间,但我在模拟器中甚至看不到一个简短的对话框闪烁
这可能是模拟器的一个“问题”,所有对话框的框架都被跳过了,还是我没有在实际绘制到屏幕的位置创建对话框。从您的描述中,我看到了两个可能的原因:
1.可能您没有正确显示DialogFragment,请参见。
2.AsyncTask是在不同的线程中启动的(不是在UIThread上),因此如果需要访问UIThread(从AsuncTask),请尝试覆盖
onProgressUpdate
请参阅。希望这是有益的