我用这个函数来延迟notifyDatasetChanged()函数。
Handler().postDelayed({
notifyDataSetChanged()
}, 100)
Run Code Online (Sandbox Code Playgroud)
Handler().postDelayed现已弃用。调用什么函数呢?
在文档中,谷歌说:
该构造函数已被弃用。在 Handler 构造期间隐式选择 Looper 可能会导致错误,其中操作会默默丢失(如果 Handler 不期待新任务并退出)、崩溃(如果有时在没有 Looper 活动的线程上创建处理程序)或竞争条件,处理程序所关联的线程不是作者所预期的。相反,使用 Executor 或使用 Looper#getMainLooper、{link android.view.View#getHandler} 或类似方法显式指定 Looper。如果为了兼容性需要隐式线程本地行为,请使用 new Handler(Looper.myLooper(),callback) 来让读者清楚。
但我是初学者,英语说得不够好,我不明白是否有其他选择可以替代handler()。
Zai*_*ain 10
您需要使用带有显式 Looper 的构造函数,供主线程 Looper 使用Looper.getMainLooper()
Handler(Looper.getMainLooper()).postDelayed({
notifyDataSetChanged()
}, 100)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6436 次 |
| 最近记录: |