Coo*_*ind 5 android application-lifecycle
我想在用户退出应用程序时调用一些方法(请参阅1、2获取帮助)。
class BaseApplication : Application(), LifecycleObserver {
override fun onCreate() {
super.onCreate()
// Register observer.
ProcessLifecycleOwner.get().lifecycle.addObserver(this)
}
@OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
fun init() {
println("*** called onCreate()")
}
@OnLifecycleEvent(Lifecycle.Event.ON_START)
fun LibOnStart() {
println("*** called onStart()")
}
@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
fun LibOnStop() {
println("*** called onStop()")
}
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
fun LibOnResume() {
println("*** called onResume()")
}
@OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
fun LibOnPause() {
println("*** called onPause()")
}
@OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
fun cleanup() {
println("*** called onDestroy()")
}
}
Run Code Online (Sandbox Code Playgroud)
这些事件都会被触发,除了ON_DESTROY。
I/System.out: *** called onPause() of Activity
I/System.out: *** called onStop() of Activity
Run Code Online (Sandbox Code Playgroud)
可能Application没有从内存中清除。如果我从最近的列表中滑动应用程序或强制停止,它不会触发destroy事件。也许这些事件在Activity. 如何捕获destroy事件Application?
文件声称
您可以将此 LifecycleOwner 视为所有 Activity 的组合,但 Lifecycle.Event.ON_CREATE 将调度一次,而 Lifecycle.Event.ON_DESTROY 将永远不会调度。
所以在应用中没有办法处理onDestroy。
或者,您可以尝试使用类onTaskRemoved的回调Service来捕获应用程序从最近使用的应用程序中删除的时刻。
| 归档时间: |
|
| 查看次数: |
3161 次 |
| 最近记录: |