如何防止android杀掉整个应用程序
我的应用程序有3个活动:如何防止android杀掉整个应用程序,android,kotlin,Android,Kotlin,我的应用程序有3个活动: -预辐射活性 -选择活动(主屏幕) -配子活动 预加载程序活动执行一些初始化工作并填充singletonAppData结构: class AppData(val locale:String, //device locale val online: Boolean, // do we online? val onSDC
-预辐射活性
-选择活动(主屏幕)
-配子活动 预加载程序活动执行一些初始化工作并填充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属性实例尚未初始化,没有任何关于初始值的数据例外