xmlファイルをロードするアクティビティがあるのですが、アプリが呼び出されて1、2秒で応答がない場合、アプリがクラッシュしたように見えないように何らかのロードを入れることができないかと思います。ありがとうございます。
1 に答える
1
経験則として、何かを行う場合は を使用しますAsyncTask
。そうしないと、長いネットワーク遅延や大きなファイルでアプリケーションが最終的にクラッシュします。
private class doSomethingTask extends AsyncTask<SomeData,Integer,SomeData[]> {
private ProgressDialog dialog;
protected SomeData[] doInBackground(SomeData... values) {
int count = values.length;
for( int i=0; i<count; i++) {
publishProgress(count,i+1);
// do something here
....
//
if( isCancelled() ) return null;
}
return values;
}
protected void onPreExecute()
{
// show progress bar or something
dialog = new ProgressDialog(context);
dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
dialog.setMessage(context.getString(R.string.downloading));
dialog.show();
}
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
dialog.setMax(values[0]);
dialog.setProgress(values[1]);
}
protected void onPostExecute(SomeData[] result) {
// kill progress bar here
if( this.dialog.isShowing()) {
this.dialog.dismiss();
}
}
}
于 2012-04-24T00:48:11.200 に答える