0
私の現在のプロジェクトでは、イメージファイルを含むSDカードのフォルダの一覧が必要です。私の現在のコードは完璧に動作しているようですが、アプリケーションがハングして「[アプリケーション]が応答していません」というウィンドウが表示されます。アプリが応答するのを待つように電話に指示しても問題はありませんが、そのような動作をユーザーに強制したくありません。Android:SDカードのディレクトリを繰り返すとハングする
この処理中にアプリケーションがハングアップしないようにするにはどうすればよいですか?
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.picker);
Set<File> directoryEntries = new HashSet<File>();
Stack<File> dirs = new Stack<File>();
// FilenameFilter#accept(File, String): returns true if file is an image
ImageFilter imagefilter = new ImageFilter();
// FileFilter#accept(File): returns true of file is a directory
DirectoryFilter dirfilter = new DirectoryFilter();
dirs.push(Environment.getExternalStorageDirectory());
while(!dirs.empty())
{
File currentDir = dirs.pop();
File[] subdirs = currentDir.listFiles(dirfilter);
File[] images = currentDir.listFiles(imagefilter);
if(images != null && images.length > 0)
directoryEntries.add(currentDir);
for(File dir : subdirs)
dirs.push(dir);
}
}