質問
こんにちはあり 私は問題の進捗ダイアログが開活動(という活動2)。活動の2つのコードを実行するこOnCreateイベントです。
final ProgressDialog myProgressDialog = ProgressDialog.show(MyApp.this,getString(R.string.lstAppWait), getString(R.string.lstAppLoading), true);
new Thread() {
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
showApps();
}
});
myProgressDialog.dismiss();
}
}.start();
のshowApps機能発活動2.
ま実行このコードを自分のボタンをクリックしイベント活動の1日はないでしょうか、その動かさないように、afeterっ黒の画面中に2、3秒の時間androidのです。
またこのコードを実行し、OnCreateのActivity2と交換すれば、showAppsのコードOnCreate,Activity1凍結2秒と思いますかのダイアログを表示し、凍結再び2秒間の活動2の結果です。
アイデア?
解決
いたるとともに、同誌掲載号の注目を使用 AsyncTask で電話をかけてきました。
3重要な方法でオーバーライドでAsyncTask.
- doInBackground :ここではお肉の背景 処理が発生します。
- onPreExecute :おProgressDialogはこちら(showDialog)
- onPostExecute :hideおProgressDialogはこちら(removeDialogはdismissDialog )
おAsyncTaskサブクラスとしての内部クラスの活動きますので、その枠組み方法showDialog,dismissDialog、removeDialog内からのおAsyncActivity.
こちらのサンプルの実施AsyncTask:
class LoginProgressTask extends AsyncTask<String, Integer, Boolean> {
@Override
protected Boolean doInBackground(String... params) {
try {
Thread.sleep(4000); // Do your real work here
} catch (InterruptedException e) {
e.printStackTrace();
}
return Boolean.TRUE; // Return your real result here
}
@Override
protected void onPreExecute() {
showDialog(AUTHORIZING_DIALOG);
}
@Override
protected void onPostExecute(Boolean result) {
// result is the value returned from doInBackground
removeDialog(AUTHORIZING_DIALOG);
Intent i = new Intent(HelloAndroid.this, LandingActivity.class);
startActivity(i);
}
}
他のヒント
AFAIKできないプリロードの活動の進捗ダイアログを表示します。ま試験を実機やエミュレータ?
見て回避策と開けた活動とViewFlipper有する進捗のアニメーションセンターは、次のビューでロードされた活動とは言わないが、お勧めとを仕事にすることが出来ます。
GeeXor
私はあなたが回避を行う多くの事業活動2のOnCreate.書く事業OnCreateである理由は、黒い画面間の活動です。な行動を非同期的に AsyncTask またはスレッド(または書き上げ onStart いやむを得ない).
その他のご提案はもとprogressDialog活動2のonCreateるまですべてのデータが読み込まれ&ユーザーに知ることもで起こっているわけである。
アドバイスをお聞かせ下さい。ハンドラを作成し、スレッドの始まりを背景処理のスレッドとしては、progressdialog.背景のスレッドが終了しその仕事でにrunnableのuiを通じてスレッドのハンドラを解任のダイアログを表示します。