Как предотвратить уничтожение всего приложения андроидом - PullRequest
0 голосов
/ 10 ноября 2019

Мое приложение имеет 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 синглтон НЕ инициализирован. Есть ли способ заставить андроид не убивать активность селектора?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...