Kis*_*nki 6 android android-lifecycle kotlin android-handler
首先,我知道如何创建Handler。
我正在开发一个项目,我正在Handler使用postDelayed. 有时,应用程序崩溃是因为Activity 被销毁并且处理程序内的任务在 Activity destroy 后执行。
我正在寻找 Handler 的替代方案,它可以在延迟后执行,并且它可以是生命周期感知的,这样应用程序就不会崩溃。
我知道如何取消处理程序(删除处理程序或取消活动的 onDestroy/onStop 方法内的处理程序),这里是相同的链接。但我并不是在寻找这些解决方案。如果可以的话,任何替代方案都将是更好的解决方案。
提前致谢!
如果您熟悉并且可以使用coroutines,您可以替换Handlers以实现相同的功能
使用以下与协程的依赖关系,您可以使协程感知生命周期
implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.2.0"
Run Code Online (Sandbox Code Playgroud)
然后在活动中
lifeCycleScope.launchWhenStarted{
delay(1000)
//do your work after delay, runs on main thread
//by default, will be cancelled if life cycle is inactive
}
Run Code Online (Sandbox Code Playgroud)
有关使用协程的更多信息:Deep Dive into Coroutines + Android