通过registerActivityLifecycleCallbacks方法监控Activity的生命周期,从而获取最新打开的Activity。
代码如下(kotlin代码):
class CommunityApplication : Application() {
init {
instance = this
}
companion object {
lateinit var instance: CommunityApplication
var currentActivity: Activity? = null //应用内最新打开的Activity
}
override fun onCreate() {
super.onCreate()
registerActivityLifecycleCallbacks(object : ActivityLifecycleCallbacks {
override fun onActivityPaused(activity: Activity?) {
}
override fun onActivityResumed(activity: Activity?) {
currentActivity = activity
}
override fun onActivityStarted(activity: Activity?) {
}
override fun onActivityDestroyed(activity: Activity?) {
if (currentActivity?.javaClass?.name.equals(activity?.javaClass?.name)) {
currentActivity = null
}
}
override fun onActivitySaveInstanceState(activity: Activity?, outState: Bundle?) {
}
override fun onActivityStopped(activity: Activity?) {
}
override fun onActivityCreated(activity: Activity?, savedInstanceState: Bundle?) {
}
})
}
}