В настоящее время я пытаюсь отсканировать файловую систему для mp3-файлов. Я сделал AsyncTask
, который сканирует каталог, и если находит подпапку, он вызывает doInBackground() снова для этой подпапки и так далее. Однако это, похоже, приводит к сбою приложения. Есть ли способ вызвать doInBackground()
рекурсивно?Как вызвать doInBackground() рекурсивно
@Override
protected List<File> doInBackground(String... params) {
if (isCancelled()) return foundFiles_;
publishProgress(String.valueOf(foundFiles_.size()));
File file = new File(params[0]);
String [] files = file.list();
for(String fileName : files)
{
File foundFile = new File(fileName);
if(foundFile.isDirectory())
{
doInBackground(fileName);
}
else
foundFiles_.add(foundFile);
}
return foundFiles_;
}
doInBackground() - это всего лишь метод, выполняющийся в другом потоке, поэтому вы должны иметь возможность рекурсивно называть его легко. Пожалуйста, разместите код, который поможет вам. – Daniel
Я вставил код :) –
Какая ошибка вы получаете ?, пожалуйста, отправьте также трассировку logcat – Daniel