чтение из файла медленно в Android - PullRequest
0 голосов
/ 14 февраля 2012

Я реализовал небольшой код чтения из файла со сканером и сохранил значения в массиве.Я читаю 3-6 файлов одновременно и сохраняю числа в 3-6 массивах.файлы сохраняются на SD-карте моего телефона.Моя проблема заключается в том, что все эти сообщения читаются медленно, и до его завершения потребовалось много времени.как я могу переписать код, чтобы быть более эффективным, или файлы должны быть сохранены в проекте, и когда я устанавливаю приложение на устройство, чтобы установить файлы и получить к ним доступ оттуда

кодЭто usgin ниже:

try {

 File I= new File(Environment.getExternalStorageDirectory().toString()+"/ECG/test/I.txt");  
 scannerI = new Scanner(I);
 scannerI.useDelimiter(";"); 
 for(int sampleIdx = 0; scannerI.hasNext();){
 timiI[sampleIdx] = scannerI.nextDouble();
 sampleIdx++;

 if(sampleIdx == SAMPLE_SIZE && !Thread.currentThread().isInterrupted()){
 //do something
 sampleIdx = 0;
                    }
                }           
           }
}

, как я уже упоминал, и прежде чем я использую более 1 файлов, и соответствующие массивы

1 Ответ

3 голосов
/ 14 февраля 2012

Сканер работает медленно в Android по моему опыту.

Я улучшил отзывчивость приложений на

  1. Перемещение кода синтаксического анализа в AsyncTask (http://developer.android.com/reference/android/os/AsyncTask.html) и запуск чтения файла в фоновом потоке.
  2. Использование LineNumberReader и String.split (";") вместо Scanner.

2-й намек ускорил процесс в моем приложении примерно в 10 раз, но все еще был слишком медленным, чтобы избежать ANR, отсюда фоновая задача.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...