私のアプリでは、サーバからデータをフェッチしてデータベースに格納しようとしています。 これらの作業をすべて実行しているときは、progressdialogが表示されます。データが正常に取得された場合は、ダイアログが閉じる必要があり、いくつかのalertDialogがmsgの「正常にデータを取得」に表示されます。そこにn/w問題があれば、それは "n/w問題"という別のmsgを表示するはずです。私は以下のようにやっていることについてアンドロイドの進捗状況のダイアログ
、
public void onClick(View arg0) {
myProgressDialog = ProgressDialog.show(
getParent(), "Please wait...",
"Doing upgrade...", true);
new Thread() {
public void run() {
try {
upgradeAll();//function where data fetched from server
sleep(5000);
} catch (Exception e) {
}
// Dismiss the Dialog
myProgressDialog.dismiss();
Toast.makeText(UpgradeAllTableData.this, "Due to some internal problem \n" +
"it couldnot update..", Toast.LENGTH_LONG).show();
}
}.start();
}
AsyncTaskコード、
private class UpgradeTask extends AsyncTask<Context, Void, Void> {
private ProgressDialog Dialog = new ProgressDialog(UpgradeAllTableData.this);
@Override
protected void onPreExecute() {
System.out.println("In onPreExecute ");
Dialog.setTitle("Loading");
Dialog.setMessage("Please wait for few seconds...");
Dialog.show();
}
@Override
protected Void doInBackground(Context... params) {
System.out.println("In doInBackground ");
upgradeAll();
System.out.println("In doInBackground after fetching");
return null;
}
@Override
protected void onPostExecute(Void unused) {
System.out.println("In onPostExecute ");
Dialog.dismiss();
Toast.makeText(UpgradeAllTableData.this, "Problem with internet" , Toast.LENGTH_SHORT).show();
alertboxNeutral("Warning", "Problem with Internet Connection", "Okay","Try again");
}
}
問題は、トーストが表示されていないです。どうして?
私の質問はどのような条件とどこで提供されるので、n/wに問題がある場合はいくつかのmsgと成功が表示され、次に別のmsgが表示されます。
ここでコードを書く必要がありますか? 私にいくつか提案してください。
はあなたの特定の質問に答えていない正確にあなたに
ASyncTaskでこれを行いました。しかし、それは正しくwotkingしていません。 thatsなぜ私はスレッドで試した。 – Jyosna
おそらく、AsyncTaskの実装が正しく機能していない理由について、AsyncTaskを間違って使用していた方がよいでしょう。または、UIスレッドにトーストを表示する機会を与えるために、常にインテント・ソリューションを使用することもできます。しかし、AsyncTaskの使用を強くお勧めします。 –
私は私のasynctaskコードを与えるでしょう。ちょうど私が間違っている場所を確認してください? – Jyosna