AsyncTaskを呼び出すリスト要素をクリックすると不確定のprogressDialogを追加しようとしていますが、残念ながらonPreExecuteのダイアログをこのように呼び出した場合:AsyncTaskの後にProgressDialogが表示されない/表示されない
@Override
protected void onPreExecute() {
super.onPreExecute();
dialog.setProgressStyle(R.style.AppTheme_Dark_Dialog);
dialog.setIndeterminate(true);
dialog.setMessage(activity.getString(R.string.Buscando));
dialog.show();
}
Obs:Asyncがアクティビティクラスのサブクラスではないことに注目して、私はアクティビティをコンストラクタのパラメータとして渡しています。
と
@Override
protected void onPostExecute(BuscaPendentesFechamento buscaPendentesFechamento) {
super.onPostExecute(buscaPendentesFechamento);
if(dialog.isShowing())
dialog.dismiss();
}
ダイアログそれが作成し、呼ばれているが、単純に(アクティビティインスタンスが正しいか、alredyチェックする)、まったく表示されません
と私は上のダイアログを設定した場合活動自体は、のように:
final ProgressDialog progressDialog = new ProgressDialog(RegistraPeso.this, R.style.AppTheme_Dark_Dialog);
progressDialog.setIndeterminate(true);
progressDialog.setMessage(getString(R.string.Buscando));
progressDialog.show();
BuscaPendentesFechamento exportProjectRequisition = new BuscaPendentesFechamento(getApplicationContext());
response = exportProjectRequisition.execute(nomeEquip,RegistraPeso.this);
progressDialog.dismiss();
ダイアログUIで示しているが、AsyncTaskはalredy行われず、それが呼び出される前に、そしてコードによれば、特開昭であるべきである後にのみAsyncが作成される前にウィングが作成されます。
どうすればよいですか?私は間違って何をしていますか?助けてください。
編集:ダイアログが作成された場所を追加しました:
private ProgressDialog dialog;
private RegistraPeso activity;
BuscaPendentesFechamento(RegistraPeso activity) {
this.dialog = new ProgressDialog(activity);
this.activity = activity;
}
編集:追加されましたdoInBackground:
@Override
protected BuscaPendentesFechamento doInBackground(String... params) {
ArrayList<UmData> jsonArrayResponse = JSONParser.makeHttpRequestArray(
Constants.URL_PENDENTES_FECHAMENTO,
Constants.METHOD_POST, requisition.writeJSON(params[0]),
requisition.getContext());
if(jsonArrayResponse!=null)
requisition.setJsonArrayResponse(jsonArrayResponse);
else {
UmData umData = new UmData();
umData.setItemUm("Server not responding");
jsonArrayResponse = new ArrayList<>();
jsonArrayResponse.add(umData);
requisition.setJsonArrayResponse(jsonArrayResponse);
}
return requisition;
}
コンテキストをAsycTaskに渡す場所にコードを投稿します。私はonPreExecute()でダイアログの作成が表示されません。 – ADM
[this](https://stackoverflow.com/a/4538370/2910520)や[this](https://stackoverflow.com/a/3893691/2910520)などの回答を確認しましたか? – MatPag
2番目の解決策は、それが価値あるものをやっていないので役に立たない。 –