有时我的应用程序被迫退出,然后Android重新启动它只是为了运行预定的作业。我无法找到与此场景相对应的回调:我的应用程序在此期间被杀死,因此我必须恢复所有保留状态。
我想避免增加入口点,我必须重新检查一切是否仍然存在。我已经有onUpdate()
用于小部件,onCreate()
用于主要活动,onResume()
用于视图片段,onStartJob()
用于预定作业。在应用程序被杀死后,它们中的任何一个都可能是第一个被调用的东西,因此在所有这些地方我都必须重复初始化代码。
我可以注册一个可以重新初始化我的应用状态的回调吗?
具体来说,我有一个JobService:
class RefreshImageService : JobService() {
override fun onStartJob(params: JobParameters): Boolean {
MyLog.i("RefreshImageService start job")
updateWidgetAndScheduleNext(applicationContext)
return true
}
override fun onStopJob(params: JobParameters): Boolean {
MyLog.i("RefreshImageService stop job")
return true
}
}
updateWidgetAndScheduleNext()
来电涉及我所拥有的一些州:
private data class TimestampedBitmap(val bitmap : Bitmap, val timestamp : Long)
private var tsBitmap: TimestampedBitmap? = null
要计算时间戳,我必须调用具有自己状态的其他代码;从我提到的所有入口点调用其他代码。如果可能的话,我想集中我的初始化代码。