0

私のアプリでは、ログインメカニズムを作成しています。これでは、ユーザーがユーザー名とパスワードを入力すると、バックグラウンドデータがフェッチされます。このフェッチされたデータに基づいて、ユーザーは別のアクティビティに移動できます。ユーザーが登録されている場合、ユーザーが登録されていない場合のように、ユーザー名とパスワードが正しくない場合。

私はこのすべての機能を実装していますが、ここではログインアクティビティに進行状況ダイアログを表示し、満たされた条件に基づいてユーザーをナビゲートしますが、データが大きいため、アクティビティレイアウトの読み込みに時間がかかり、すでにダイアログを閉じていますAsyncTaskのonPostMethodで。

したがって、2〜3秒間、ログインアクティビティはダイアログなしで停止します(すでに閉じられているため)。したがって、ログイン進行中のダイアログをどこに表示する必要がありますか。

他に詳細が必要な場合は教えてください。

4

3 に答える 3

0

startActivity() 呼び出しの直後に progressDialog を閉じます。※必ずUIスレッドで消してください。

私はAndroid C#のモノラルで作業していますが、コードは次のようになります(Javaに変更するだけです):

 var myIntent = new Intent(this, typeof (MyActivity));


 StartActivity(myIntent);
 _progressDialog.Dismiss();
于 2013-03-13T13:48:47.237 に答える
0

応答に基づいて、Dialog UI コンポーネントを引き続き使用するかどうかを確認する方法を取ります。また、達成するのに時間がかかるタスクが含まれている場合、その時点で ProgressDialog を却下することはありません。

フォローアップ アクティビティで操作が完了するまで待ってから、そこで却下します。コードや直接的な問題のないソリューションとして、コミュニティとして他に何ができるかわかりません。おそらく推測して、建築的/構造的な対応を考え出すことができます。

于 2013-03-13T13:35:29.237 に答える
0

新しいアクティビティに移動するだけdoInBackgroundですべてのデータを処理します。onPostExecuteユーザーが登録されているかどうかなどを確認するには、メソッドでいくつかのフラグを使用しますdoInBackground

于 2013-03-13T13:35:38.257 に答える