У меня есть приложение, которое записывает несколько атрибутов активности переднего плана. Я использовал локальную БД для хранения данных, и когда пользователь запрашивает отображение, я извлекаю данные из этой БД и отображаю их в виде списка. Он отлично работает с GB, ICS. Но транзакция базы данных очень неравномерна в JellyBean. Пустой возвращается. Я не могу понять причину этого. Я тестировал это с Samsung Young, HTC, Sony Ericson Xperia и Samsung S3. Проблема связана с S3, где она была обновлена до JB. Ниже приведена трассировка logCat. пожалуйста помоги.Проблема SQLite на Jelly Bean
try {
db.open();
Cursor cursor = db.getStartTime(lastAppName); ;
if(cursor.moveToFirst()) {
do {
DiffStart = cursor.getString(0);
DiffBright = cursor.getString(1);
Log.d("wifiRun","brightness: " +DiffBright);
}while(cursor.moveToNext());
}
SimpleDateFormat dateFormat = new SimpleDateFormat(
"HH:mm:ss");
try {
Date startTime = dateFormat.parse(DiffStart);
Date endTime = dateFormat.parse(EndingTime);
diff = (endTime.getTime() - startTime.getTime())/1000;
Difference = String.valueOf(diff);
try {
double brightnessDouble = Double.parseDouble(DiffBright);
Log.d("wifiRun","brightnessDouble: " +brightnessDouble);
//Do my energy calculation.
} catch (NullPointerException npe) {
npe.printStackTrace();
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NullPointerException npe) {
npe.printStackTrace();
}
db.update(lastAppName, EndingTime, Difference, AppEnergy);
Cursor cur = db.Select(lastAppName);
if(cursor.moveToFirst()) {
do {
testBright = cursor.getString(0);
Log.d("wifiRun","testBright: " +testBright);
testEnergy = cursor.getString(1);
Log.d("wifiRun","testEnergy: " +testEnergy);
}while(cursor.moveToNext());
}
db.close();
} catch (SQLException sql) {
sql.printStackTrace();
}
LogCat выглядит следующим образом:
06-11 12:57:31.258: D/wifiRun(32469): brightness: 171
06-11 12:57:31.258: D/wifiRun(32469): brightness: null
06-11 12:57:31.258: D/wifiRun(32469): brightness: null
06-11 12:57:31.258: D/wifiRun(32469): brightness: 171
06-11 12:57:31.258: D/wifiRun(32469): brightness: 171
06-11 12:57:31.258: D/wifiRun(32469): brightness: 171
06-11 12:57:31.258: D/wifiRun(32469): brightness: 171
06-11 12:57:31.258: D/wifiRun(32469): brightness: 171
06-11 12:57:31.258: D/wifiRun(32469): brightness: 171
06-11 12:57:31.258: D/wifiRun(32469): brightness: 171
06-11 12:57:31.263: D/wifiRun(32469): brightnessDouble: 171.0
06-11 12:57:31.263: D/wifiRun(32469): AppEnergy: 13.977
06-11 12:57:31.268: D/wifiRun(32469): testEnergy: null
06-11 12:57:31.268: D/wifiRun(32469): testBright: 171
06-11 12:57:31.268: D/wifiRun(32469): testEnergy: null
06-11 12:57:31.268: D/wifiRun(32469): testBright: null
06-11 12:57:31.268: D/wifiRun(32469): testEnergy: null
06-11 12:57:31.268: D/wifiRun(32469): testBright: null
06-11 12:57:31.268: D/wifiRun(32469): testEnergy: 313.776
06-11 12:57:31.268: D/wifiRun(32469): testBright: 171
06-11 12:57:31.268: D/wifiRun(32469): testEnergy: 313.776
06-11 12:57:31.268: D/wifiRun(32469): testBright: 171
06-11 12:57:31.268: D/wifiRun(32469): testEnergy: 2.795
06-11 12:57:31.268: D/wifiRun(32469): testBright: 171
06-11 12:57:31.268: D/wifiRun(32469): testEnergy: 36.339
06-11 12:57:31.268: D/wifiRun(32469): testBright: 171
06-11 12:57:31.268: D/wifiRun(32469): testEnergy: 6.289
06-11 12:57:31.268: D/wifiRun(32469): testBright: 171
06-11 12:57:31.273: D/wifiRun(32469): testEnergy: 0.699
06-11 12:57:31.273: D/wifiRun(32469): testBright: 171
06-11 12:57:31.273: D/wifiRun(32469): testEnergy: 13.977
06-11 12:57:31.273: D/wifiRun(32469): testBright: 171
Здесь вы можете найти трассировку. – Riser
Я сказал. Как вы можете видеть, он был null много раз. Его лог-кошка пробегала всего 2 секунды. Если вы запустите мое приложение за минуту, появится много нулей. – madhu
Покажите свой код, чтобы начать – Geoffroy