我使用下面的代码显示用户点击以获取移动设备中的应用列表时的进度条。问题是这个栏几乎没有出现,我注意到需要2到3秒才能显示活动中的应用列表。
static private void prod() {
progressDialog = new ProgressDialog(activity);
progressDialog.setCancelable(false);
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setTitle("Fetching App List");
progressDialog.setMessage("Please Wait...");
progressDialog.show();
}
这是我将数据传递到自定义列表视图的方式。
Adapter = new AppListAdapter(context, packageList, packageManager);
apps.setAdapter(Adapter);
这里我在适配器类的getView中调用了这样的进程。
AppList.procan();
return convertView;
2到3秒不足以至少显示进度条。
我在点击时调用此方法,并在调用listview适配器时将其解除。
我在许多应用程序中看到即使是1秒的应用程序显示进度条。为什么我无法得到。我可以做什么修复。?
答案 0 :(得分:2)
问题可能是每次点击期间ProgressDialog的初始化(耗时),所以
1。)使方法非静态并初始化progressDialog
中的oncreate
(如果它在不同的类中,则尽快初始化)
2.)然后只在show
progressDialog
ProgressDialog progressDialog;;
protected void onCreate(...) {
//...code
progressDialog = new ProgressDialog(activity);
progressDialog.setCancelable(false);
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setTitle("Fetching App List");
progressDialog.setMessage("Please Wait...");
}
private void prod() {
progressDialog.show();
}