0

特定の拡張子を含む SD カードのすべてのファイルを一覧表示する Android アプリを作成しようとしています。例: pdf、mp3、txt など。

Android MediaStoreクラスの getContentURI メソッドを使用してみました。

MediaStore.Files.getContentUri("");

ただし、これはハニカム以降のバージョンでのみサポートされていますが、私のアプリはジンジャーブレッドもサポートする必要があります。

私が遭遇した別の方法は、Apache の FileUtils クラスで、そのコードを以下に示します。

File externalContentDirectory=Environment.getExternalStorageDirectory();
String[] extensions = new String[] {"mp3","pdf","txt"};
Collection<File> files=FileUtils.listFiles(externalContentDirectory, extensions,true);

問題は、低速の電話ですべてのファイルを一覧表示するのに時間がかかりすぎて、これが原因でアプリケーションが何度もクラッシュすることです。

より高速で効率的なファイルを一覧表示するための Android 固有の方法はありますか?

4

1 に答える 1

0

質問で共有したコードをもう 1 つ提案します。それを に入れ、async taskそこから を呼び出してリストを更新できますadapter.notifyDataSetChanged()。このようにして、アプリはスタックせず、リストをロードしている間、ユーザーは他のタスクを実行できます。

注意: 2async tasksは並行して実行できません

于 2013-05-19T11:29:37.193 に答える