Я работаю над приложением Android, где я хочу сохранить информацию, введенную в текстовое представление активности в базе данных всякий раз, когда поступает телефонный звонок, меняется ориентация приложения и т. Д.onSaveInstanceState вызывается дважды в Orientation Change
Я использую этот код для сохранения информации, введенной пользователем в текстовое представление.
@Override
protected void onSaveInstanceState(Bundle outState) {
save();
Toast.makeText(getApplicationContext(), "On save state", Toast.LENGTH_SHORT).show();
super.onSaveInstanceState(outState);
}
Проблема:
Всякий раз, когда мой телефон ориентация изменяется метод onSaveInstanceState
вызывается дважды. Может ли кто-нибудь объяснить мне причину этого.
Потому что он называется дважды, save()
также вызывается дважды, и у меня есть дубликаты записей в моей таблице базы данных - что не очень хорошо.
Я не могу использовать android:configChanges="orientation|screenSize"
в файле манифеста, чтобы иметь дело с изменением ориентации. Поскольку реклама исчезает, когда пользователь меняет пейзаж на портрет.
onSaveInstanceState
вызывается только один раз, когда телефонный звонок получен :)
Примечание: сохранить() также называется onBackPressed метод()
Пожалуйста помогите!
is save() только вызываемый в методе onSaveInstanceState()? – dumazy
Нет, он также называется методом onBackPressed() –
Я просто хочу убедиться, что все данные сохраняются в базе данных, когда когда-либо действие происходит в фоновом режиме, уничтожается или любое другое перехват –