我正在编写一个需要列出所有Active和Disabled软件包的Android应用程序。我想显示一个进度对话框,因为它需要一段时间,而且我不想保持屏幕"挂起"这个过程完成了。
这是重要的片段:
pm = getPackageManager();
ProgressDialog pd = ProgressDialog.show(this, "Please Wait", "Loading Packages...");
pkgsEn = PackageLister.retrievePackageList(pm, getResources(), PackageLister.PACKAGES_ENABLED);
pkgsDis = PackageLister.retrievePackageList(pm, getResources(), PackageLister.PACKAGES_DISABLED);
laEn = new PackageAdapter(getBaseContext(), R.layout.packageinfo, pkgsEn);
laDis = new PackageAdapter(getBaseContext(), R.layout.packageinfo, pkgsDis);
lvEn = new ListView(getBaseContext());
lvDis = new ListView(getBaseContext());
pd.dismiss();
没有错误消息,它只是冻结屏幕,直到列表完成。
谢谢你的时间!
答案 0 :(得分:1)
在进度对话框中调用show()不会立即显示它。您需要在加载程序或asynctask中检索包列表,然后在后台工作完成后关闭进度对话框。在主线程上按顺序执行所有工作将不允许显示对话框。