0

だから私はいくつかのアプリケーションを持っています.起動時にスプラッシュスクリーンアクティビティを起動し、ユーザーアカウントがアプリにリンクされているかどうかを確認します. アプリがある場合、メインのアクティビティを起動し、スプラッシュを静かにバイパスします。ユーザー アカウントがない場合は、データベースをプルダウンしAsyncTask、ユーザーにログイン/アカウントの作成を求めます。

最初の起動時に、アプリはサーバーと同期し、データベースをプルダウンします。DialogFragmentこのデータベースがプルダウンされているときに、不確定な進行状況バーを表示しようとしています。現在、DialogFragmentは の で作成され、はonPreExecute()アクティビティのメソッドで実行されます。問題は、ダイアログが画面に描画されていないことです。AsyncTaskAsyncTaskonStart()

onCreate()ダイアログが実行中であり、同期が成功したことを示すデバッグ ログがあります。ダイアログは、UI スレッドで実行されるonPreExecute()およびonPostExecute()それぞれで表示/非表示になります。データベースのダウンロードが速い場合、これはそれほど長くは表示されませんが、エミュレーターでダイアログが一瞬も表示されません。

これは、すべてのダイアログのフレームがスキップされているエミュレーターの「問題」であるか、実際に画面に描画される時点でダイアログを作成していない可能性があります。

4

1 に答える 1

0

あなたの説明から、2 つの理由が考え
られます。1. DialogFragment を正しく表示していない可能性があります
2. AsyncTask は (UIThread ではなく) 別のスレッドで起動されるため、(AsuncTask から) UIThread にアクセスする必要がある場合は、チュートリアルonProgressUpdateを参照してオーバーライドしてみてください。 お役に立てば幸いです。

于 2013-07-31T19:43:31.143 に答える