您好,我正在尝试在活动加载时显示进度对话框。我的问题是,尽管我已经完成了活动中的所有工作,但活动需要很长时间才能加载,我怀疑这是因为我在ViewFlipper中使用了多个视图,其中包含多个ListView和自定义数组适配器。UI需要很长时间才能显示。
我应该如何检查活动中所有UI是否已经完成加载?
或者是否有一种预加载所有活动和UI的方法?
谢谢!
您好,我正在尝试在活动加载时显示进度对话框。我的问题是,尽管我已经完成了活动中的所有工作,但活动需要很长时间才能加载,我怀疑这是因为我在ViewFlipper中使用了多个视图,其中包含多个ListView和自定义数组适配器。UI需要很长时间才能显示。
我应该如何检查活动中所有UI是否已经完成加载?
或者是否有一种预加载所有活动和UI的方法?
谢谢!
使用Asynctask
new DownloadTask().execute();
private class DownloadTask extends AsyncTask<String, Void, Object> {
protected void doInBackgroind(Void... arg0){
//Do time Consuming Processing
publishProgres()
return null;
}
protected void onProgressUpdate(Void... arg0){
}
protected void onPostExecute(Void... result){
log.i("AvtivityInfo", "activity finished loading...");
}
}
如果你认为你需要一个ProgressDialog
,因为你的活动打开得太慢了,那么你有更大的问题。Android很可能会用一个活动无响应的错误来终止你的活动。
你可以变得复杂一些,使用Traceview来找到你的性能问题,或者你可以尝试一下。例如,你可以跳过在你的ListViews
中设置适配器,以确认问题确实存在于那里。
Jorgesys在他现在已删除的条目中给出了正确的答案,从我所看到的情况来看。我怀疑加载你的适配器需要时间,也许是在数据库查询中,你需要将其中一些移动到AsyncTasks
中。