@CL е прав, режимът на дневника изглежда се променя в зависимост от нивото на API (може би се променя и от производителя?).
Въпреки това, за бъдеща справка, запитах базата данни за journal_mode в няколко нива на API и резултатите са:
- Android 2.3.7 (API 10) =изтриване
- Android 4.0.4 (API 15) =съкращаване
- Android 4.1.1 (API 16) =постоянство
- Android 4.3.0 (API 18) =постоянство
- Android 4.4.4 (API 19) =постоянство
- Android 5.0.0 (API 21) =постоянство
- Android 5.1.0 (API 22) =постоянство
Код за получаване на режим на дневник:
Cursor c = db.rawQuery("PRAGMA journal_mode;", null);
c.moveToFirst();
String journalMode = c.getString(c.getColumnIndex("journal_mode"));
Относно режимите на журнала:
Режимът на дневник DELETE е нормално поведение. В режим DELETE дневникът за връщане се изтрива при приключване на всяка транзакция. Действително, операцията изтриване е действието, което кара транзакцията да се извърши.
Режимът на TRUNCATE записва транзакции, като съкращава дневника за връщане до нулева дължина, вместо да го изтрива. На много системи съкращаването на файл е много по-бързо от изтриването на файла, тъй като не е необходимо да се променя съдържащата го директория.
Режимът на дневник PERSIST предотвратява изтриването на дневника за връщане в края на всяка транзакция. Вместо това заглавката на дневника се презаписва с нули. Това ще попречи на други връзки към базата данни да върнат дневника обратно. Режимът на дневник PERSIST е полезен като оптимизация на платформи, където изтриването или съкращаването на файл е много по-скъпо от презаписването на първия блок от файл с нули.
Повече информация