java - 如何修复错误处理计时器()在kotlin中运行多次?
问题描述
class HomeActivity : BaseActivity(), View.OnClickListener,
NavigationView.OnNavigationItemSelectedListener {
private var mTimer:Timer? = null
private var mTimerTask: TimerTask? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// todo ..
syncLocationToServer()
// todo...
}
private fun syncLocationToServer() {
mTimer = Timer()
mTimerTask = object : TimerTask(){
override fun run() {
Log.d("test", getDateTimeLocal())
}
}
mTimer?.schedule(mTimerTask, 0, 60000L)
}
}
我想问一下。在上面的代码中,我想每 1 分钟执行一次 Log.d("test", getDateTimeLocal())。
但有时在1分钟发生时,会多次调用Log.d("test", getDateTimeLocal())。我不明白为什么,请帮助我?
解决方案
试试这个定时器功能:
private fun syncLocationToServer() {
Timer().schedule(object : TimerTask() {
override fun run() {
TODO("Do something")
}
}, 2000)
}
推荐阅读
- vue.js - 同时使用 v-if 和自定义指令引起的样式冲突
- reactjs - CRUD 功能火力基地
- vba - 为什么 Outlook vb 不起作用 - 限定符无效
- python - 用于异步计算/获取的 Python Asyncio/Trio
- logging - 使用 MuleSoft Runtime 4.4 进行 MDC 日志记录
- java - 如何获取 mapA 中的键,因为 mapB 中的键是 mapA 中键的子字符串?
- c++ - 如何通过拆分数据计算大文件中的单词?
- python - Vlookup 功能/合并 Pandas 但不完全匹配
- python - 将列添加到熊猫中的特定级别数据透视表
- spring-boot - com.fasterxml.jackson.databind.JsonMappingException:java.util.Optional 不能转换为 java.time.LocalDate