我有一个加载 xml 文件的活动,但是当应用程序在 1 或 2 秒内被调用而没有回复时,我想知道是否可以进行某种加载以不显示应用程序崩溃,谢谢。
问问题
503 次
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 回答