2017-06-07 5 views
-1

を経由して、私は私のコードでは、ここ以外どこでも動作するようですカスタム進行状況ダイアログを持って表示されません。このクラスは、(関連するスニペット)ダイアログが返されました:すべてのエラー、例外、およびダイアログが同じアプローチを使用して他の場所でshowiongさを見ていないダイアログがAsyncTask

public static Dialog getProgressDialog(Context c, boolean isCancelable) { 

    Dialog pd = new Dialog(c,c.getApplicationInfo().theme); 
    pd.setCanceledOnTouchOutside(isCancelable); 
    pd.requestWindowFeature (Window.FEATURE_NO_TITLE); 
    pd.setContentView (R.layout.progress_dialog); 
    pd.getWindow().setBackgroundDrawable(new ColorDrawable(Color.argb(150,0,0,0))); 

    return pd; 
} 

イム。時々私は数分の1秒間それを見るが、タスクは完了していない。

提案があります。

ありがとうございます。

+0

あなたがされているすべてのチャンスを'show();' 'pd.show();'のような ''メソッドがありません? – Yupi

+1

'login()'メソッドは、コールバック引数をとるため、非同期であるように見えます。 'AsyncTask'を取り除き、' login() '呼び出しの前にあなたのダイアログを表示し、コールバックメソッドでそれを閉じます。 –

答えて

0

AlertDialogはフォアグラウンドのものです。 UIスレッドにダイアログを表示する必要があります。あなたがAsyncTaskであなたのダイアログを表示したいのであれば、あなたはrunOnUiThreadにアプローチする必要があります

runOnUiThread(new Runnable() { 
    @Override 
    public void run() { 
     // Show your dialog here 
    } 
}); 

文書:

関連する問題