如何知道我的应用已重新启动以运行预定作业

时间:2017-11-30 18:49:10

标签: android android-jobscheduler

有时我的应用程序被迫退出,然后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

要计算时间戳,我必须调用具有自己状态的其他代码;从我提到的所有入口点调用其他代码。如果可能的话,我想集中我的初始化代码。

0 个答案:

没有答案