Android “实施后进度”对话框项目运行非常缓慢
我已经实现了进度条,但是,在实现后,这个进度条会长期旋转,请帮助解释为什么运行得很慢。如果我要删除进度对话框,只需30秒,在实现进度后需要60秒以上 我使用这个代码Android “实施后进度”对话框项目运行非常缓慢,android,android-asynctask,Android,Android Asynctask,我已经实现了进度条,但是,在实现后,这个进度条会长期旋转,请帮助解释为什么运行得很慢。如果我要删除进度对话框,只需30秒,在实现进度后需要60秒以上 我使用这个代码 class ProgressBarshow extends AsyncTask<String, String, String> { private ProgressDialog pdia; @Override protected void onPreExecute() { su
class ProgressBarshow extends AsyncTask<String, String, String> {
private ProgressDialog pdia;
@Override
protected void onPreExecute() {
super.onPreExecute();
pdia = new ProgressDialog(Cases.this);
pdia.setMessage("Loading...");
pdia.show();
}
@Override
protected String doInBackground(String... f_url) {
adapter = new ListViewAdapter(Cases.this,url);
return null;
}
@Override
protected void onPostExecute(String file_url) {
pdia.dismiss();
listshowcase.setAdapter(adapter);
}
}
class ProgressBarshow扩展了异步任务{
私家侦探;
@凌驾
受保护的void onPreExecute(){
super.onPreExecute();
pdia=新建进度对话框(Cases.this);
pdia.setMessage(“加载…”);
pdia.show();
}
@凌驾
受保护的字符串doInBackground(字符串…f_url){
adapter=新的ListViewAdapter(Cases.this,url);
返回null;
}
@凌驾
受保护的void onPostExecute(字符串文件\u url){
pdia.discouse();
setAdapter(适配器);
}
}
您是否正在尝试更新doInBackground中的ui?如果你不应该,我不想更新ui,@RaghunandanI猜测你的后台计算需要更长的时间。它与进度对话框无关。引用文档中的话“AsyncTasks最好用于短期操作(最多几秒钟)。如果您需要让线程长时间运行,强烈建议您使用java.util.concurrent pacake提供的各种API,如Executor、ThreadPoolExecutor和FutureTask”。我使用的是,但是由于这也花费了更多的时间,我已经删除了这个……….progressUpdate(最终字符串…progress){//设置进度百分比Save.this.runOnUiThread(new Runnable(){public void run(){pDialog.setProgress(Integer.parseInt(progress[0]))我不认为这是这次经济放缓的原因。这是你在后台做的事(计算耗时较长)