android - 处理程序不会停止,handler.removeCallbacksAndMessages(null) 在 android (kotlin) 的片段中不起作用
问题描述
这里面有一个活动我有viewPager,每个片段都是相同的,在那个片段里面我有处理程序,问题是当我第一次进入这个活动并退出活动然后处理程序停止,但是当我再次进入然后退出这个活动,处理程序不会停止。我还在 onDestroy() 和 onDestroyView() 中调用 handler.removeCallbacksAndMessages(null),请帮我解决这个问题。
runnable = Runnable {
.
.
.
handler!!.postDelayed(runnable, 10000)
}
loadImage()
下面是我的 loadImage 函数
fun loadImage() {
handler!!.removeCallbacksAndMessages(null)
.
.
.
handler!!.postDelayed(runnable, 0)
}
在 Fragment 的 onCraeteView 中,我调用 fun loadImage(),它会启动处理程序,我想每 10 秒在当前 Fragment 中多次调用这个 fun loadImage(),但是 fun loadImage() 中的 handler!!.removeCallbacksAndMessages(null) 会不行。
我也调用了下面,但是当我销毁片段处理程序时仍然会运行
override fun onDestroyView() {
handler!!.removeCallbacksAndMessages(null)
super.onDestroyView()
}
override fun onDetach() {
super.onDetach()
handler!!.removeCallbacksAndMessages(null)
}
override fun onDestroy() {
super.onDestroy()
handler!!.removeCallbacksAndMessages(null)
}
解决方案
推荐阅读
- reactjs - 如何捕获模式打开编辑项目的 ID 值?
- c++ - vcpkg:如何为每个项目安装软件包(不是用户范围的)?
- angular - 我想连续访问数据。意味着每次更改 API 都应该为我提供更新的数据
- apache-flink - Apache Flink 异常处理
- asp.net-core - 生产永远不会重定向到 https,即使 api 启用了 https 重定向
- cordova - this.file.listDir 不会返回 applicationStorageDirectory 下的文件夹
- r - 如何使用列作为上限进行积分
- html - 某些文本上的重音损坏/未对齐
- sql - 总结 GROUP BY 结果
- python - 如何在 matplotlib 绘图函数中将 'ந ே' 打印为 'நே'?渲染问题