Как очистить boolean переменную после обновления приложения но только раз?
Задача следующая при открытии приложения нужно вывести окно с информацией о версии приложения . В окне я нажму ок и окно больше не будет показывалось. Но при обновлении приложения мне снова нужно вывести это окно как сбросить AlertState_Info_text в false .
Беда в том что что если сбросить AlertState_Info_text в false при открытии приложения оно всегда будет сбрасывать переменную тем самым всегда будет показывать окно. (Нужно чтобы сбросило при обновлении и больше не трогало.)
Сорян если чё объяснил как мог
SharedPreferences prefs = getSharedPreferences("Info_text", Context.MODE_PRIVATE);
boolean AlertState_Info_text = prefs.getBoolean("Info_text", Info_text);
if (AlertState_Info_text == false) {
new AlertDialog.Builder(this)
.setTitle(R.string.AlertState_Info_text_Title)
.setMessage(R.string.AlertState_Info_text_Message)
.setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
Info_text = true;
SharedPreferences.Editor ed = getSharedPreferences("Info_text", Context.MODE_PRIVATE).edit();
ed.putBoolean("Info_text", Info_text);
ed.commit();
}
})
.create().show();
Ответы (1 шт):
У вас по условию 2 параметра, отвечающие за показ диалога. А вы в логике используете только одно. Добавьте ещё и проверку версии. Или даже оставьте только проверку версии. Типа как-то так (псевдо-код):
if (Build.VERSION_CODE != preferences.getInt("lastShownVersion", 0)) {
//показываем диалог, по закрытию диалога обновляем версию в префах по ключу lastShownVersion на текущую (взятую из Build.VERSION_CODE)
} else {
// ничего не делаем.
}