我的应用包含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
单例现在尚未初始化,因此无法恢复。有没有办法使android不杀死选择器活动吗?