Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何防止android杀掉整个应用程序_Android_Kotlin - Fatal编程技术网

如何防止android杀掉整个应用程序

如何防止android杀掉整个应用程序,android,kotlin,Android,Kotlin,我的应用程序有3个活动: -预辐射活性 -选择活动(主屏幕) -配子活动 预加载程序活动执行一些初始化工作并填充singletonAppData结构: class AppData(val locale:String, //device locale val online: Boolean, // do we online? val onSDC

我的应用程序有3个活动:
-预辐射活性
-选择活动(主屏幕)
-配子活动

预加载程序活动执行一些初始化工作并填充singleton
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
        }
    }

初始化后,应用程序进入
选择活动
,然后进入
游戏活动
。问题是当游戏屏幕上出现故障时,android会杀死整个应用程序并尝试恢复选择器活动。但无法恢复,因为
AppData
singleton现在未初始化。有没有办法让android不杀死选择器活动?

解决方案不是一开始就阻止它崩溃吗?如果你想在应用程序进程停止后保持状态,那么你需要某种持久性机制,比如
SharedReferences
关键问题是在应用程序进程停止后,我只收到
kotlin.UninitializedPropertyAccessException:lateinit属性实例尚未初始化,没有任何关于初始值的数据例外