Почему это так медленно?
Если вы используете это на устройстве, добро пожаловать на флэш-ввод-вывод. Флэш-ввод / вывод может быть очень медленным, в зависимости от того, что еще происходит с устройством. Большинство устройств Android используют файловую систему YAFFS2, которая использует глобальную блокировку разделов для однопоточного доступа к файловой системе. И флэш-записи еще медленнее из-за балансировки уровня износа и еще много чего.
Вам следует посмотреть презентацию Брэда Фицпатрика «Написание приложений для Android Zippy» с конференции Google I | O 2010 года. Там он указывает, что запись одного байта на флэш-память - хотя обычно очень быстрая - иногда может занять 200 мс.
Следовательно, общая рекомендация состоит в том, чтобы не выполнять флэш-ввод-вывод в основном потоке приложения.
Есть ли способ сделать это асинхронно, чтобы не создавать задержки в пользовательском интерфейсе?
Используйте AsyncTask
.