Это происходит только на Pixel 2, а не на других устройствах. Я заметил, что когда я открываю приложение на Pixel 2 после перезапуска устройства, жизненный цикл активности начинается снова, т.е. он начинается с onCreate (), тогда как на других устройствах (Nexus / Samsung / One +), когда я запускаю приложение после перезагрузки устройства, onResume () вызывается первым.
Так что мне интересно, что мои общие настройки стираются, так как приложение фактически перезапускается. Любая идея, что может быть причиной и как это можно предотвратить?
У меня есть следующий код в моем методе onCreate ():
if (!isTaskRoot
&& intent.hasCategory(Intent.CATEGORY_LAUNCHER)
&& intent.action != null
&& intent.action == Intent.ACTION_MAIN) {
finish()
return
}
Я точно знаю, что настройки сохраняются правильно, так как они отлично работают на других устройствах, и я использую метод .apply () для сохранения настроек.
private fun getBoolean(context: Context, key: String, defaultValue: Boolean): Boolean {
return PreferenceManager.getDefaultSharedPreferences(context).getBoolean(key, defaultValue)
}
private fun setBoolean(context: Context, key: String, value: Boolean) {
val editor = PreferenceManager.getDefaultSharedPreferences(context).edit()
editor.putBoolean(key, value)
editor.apply()
}
Редактировать: на устройстве Nexus я заметил, что жизненный цикл приложения начинается с onCreate после перезагрузки устройства, но сохраняет общие настройки. Так что просто Pixel 2 не сохраняет его.