在listview中获取和显示数据时强制进度条

问题描述 投票:2回答:1

当用户点击以获取移动设备中的应用列表时,我使用下面的代码显示进度条。问题是这个栏几乎没有出现,我注意到需要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秒的应用程序显示进度条。为什么我无法得到。我可以做什么修复?

java android
1个回答
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();
}
© www.soinside.com 2019 - 2024. All rights reserved.