0

すべてのアクティブパッケージと無効パッケージを一覧表示する必要がある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();

エラーメッセージは表示されません。リストが完了するまで画面がフリーズします。

御時間ありがとうございます!

4

1 に答える 1

1

進行状況ダイアログでshow()を呼び出しても、すぐには表示されません。ローダーまたは非同期タスクでパッケージリストを取得し、そのバックグラウンド作業が完了した後、進行状況ダイアログを閉じる必要があります。メインスレッドですべての作業を順番に実行しても、ダイアログが表示されません。

于 2013-02-14T20:47:32.457 に答える