[英]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.