За всю свою жизнь я не могу понять, почему я не могу заставить этот метод ввести оператор if.
protected void foo() {
Date d = new Date();
long now = d.getTime();
long start;
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
start = settings.getLong(FIRST_USE_DATE, 0);
Log.w(this.getClass().getName(), Long.toString(start));
if (start == 0) {
SharedPreferences.Editor editor = settings.edit();
editor.putLong(FIRST_USE_DATE, now);
}
вернуть true;
}
Обратите внимание, что журнал и режим отладки показывают, что «start = 0»
я тоже пробовал
if (start == 0l) {
if (start == 0L) {
Какого черта я здесь скучаю? 0! = 0?
Я работаю в Eclipse с Java для Android. Спасибо.
редактирует:
@ methodin - извините, это не работает.
@ Aioobe - У меня есть точка останова по заявлению IF, которая никогда не будет сделана.
Edit2: Вот фактический код, который я запускаю, так как вы спросили.
protected boolean isDemoExpired() {
Date d = new Date();
long now = d.getTime();
long demoStart;
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
demoStart = settings.getLong(FIRST_USE_DATE, 0);
if (demoStart == 0) {
SharedPreferences.Editor editor = settings.edit();
editor.putLong(FIRST_USE_DATE, now);
System.out.println(Long.toString(demoStart));
return false;
}
return true;
}