我使用这个函数来延迟通知数据更改()
函数。
Handler().postDelayed({
notifyDataSetChanged()
}, 100)
Handler(). postDelayed
现在已弃用。改调用什么函数?
在留档中,谷歌说:
此构造函数已弃用。在Handler构造期间隐式选择Looper可能会导致操作静默丢失的错误(如果Handler不期望新的任务和退出)、崩溃(如果有时在没有Looper活动的线程上创建处理程序)或竞争条件,其中处理程序关联的线程不是作者预期的。相反,使用Execator或显式指定Looper,使用Looper#getMainLooper、{link android. view.View#getHandler}或类似方法。如果兼容性需要隐式线程本地行为,请使用new Handler(Looper.myLooper()、callback)向读者明确说明。
但是我是初学者,英语说得不够好,我不明白是否有其他选项来替换handler()
。
您需要使用带有显式循环器的构造函数,对于主线程循环器useLooper. getMainLooper()
Handler(Looper.getMainLooper()).postDelayed({
notifyDataSetChanged()
}, 100)
我强烈建议使用静态编程语言协程。在您将库实现到项目中后,这是协程的示例代码:
GlobalScope.launch {
delay(2000)
"Your Code"
}