Мое приложение имеет 3 действия:
-PreloaderActivity
-SelectorActivity (главный экран)
-GameActivity
Действие Preloader выполняет некоторую работу по инициализации и заполняет одиночную структуру AppData
:
class AppData(val locale:String, //device locale
val online: Boolean, // do we online?
val onSDCard:Boolean, //do we on sdcard?
val idfa:String?, //id for advertising
val isTablet:Boolean, //tablet or phone
var awardsTimestamp:Long=-1, //tasks.json last modification time
var gdprStatus:ConsentStatus?=null,
val inapData: InapManager.InapData?, //google play inap data
val version:Version //app version
) {
companion object{
lateinit var instance:AppData
private set
private var reseted=false
val isInitialized:Boolean
get()=(::instance.isInitialized && !reseted)
fun dispose() {
reseted=true
}
}
init {
//singleton instantiation
if(!isInitialized) {
reseted=false
instance = this
}
}
После инициализации приложение переходит на SelectorActivity
, а затем на GameActivity
. Проблема в том, что когда что-то ломается на экране игры, android убивает все приложение и пытается восстановить активность селектора. Но это не может быть восстановлено, поскольку AppData
синглтон НЕ инициализирован. Есть ли способ заставить андроид не убивать активность селектора?