[英]Why override Java.util.TimerTask()?
此代码部分取自github,用于连续扫描wifi网络信号强度: https : //github.com/schollz/find3-android-scanner/blob/master/app/src/main/java/com/internalpositioning/find3 /find3app/ScanService.java
new java.util.Timer().schedule(
new java.util.TimerTask() {
@Override
public void run() {
synchronized (lock) {
if (isScanning == false) {
doScan();
}
}
}
},
0
);
其次是4个写的完全相同,但是在第二个最后一行中使用10000,20000,30000,40000毫秒等待而不是0。
我试图了解它到底在做什么。 它似乎唯一真正的功能是等待0秒,10秒,20秒......
那么这样写的重点是什么,并重复相同的代码5次? 有没有更好的方法来做到这一点?
有人可能会改变前4个TimerTask
以重用公共类,但第5个不同,因为它也使用stopSelf()
方法停止服务:
new java.util.Timer().schedule(
new java.util.TimerTask() {
@Override
public void run() {
synchronized (lock) {
if (isScanning == false) {
doScan();
}
}
stopSelf(); // stop the service
}
},
40000
);
如果检查文件历史记录87827a01019bfb4b18d059f6cfb401b58926590f提交添加重复的TimerTask
以提高扫描频率。 以前只有3个TimerTask
在提交后有5个。看起来像快速修复而不重构代码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.