1
我想停止處理程序自我處理程序,但我得到這個錯誤。在這種情況下如何停止處理程序?停止自己的處理程序
無法實例Runnable接口類型
代碼:
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
senseWiFi();
if(WIFINumberList.size() > 1){
int first = WIFINumberList.get(0);
int second = WIFINumberList.get(1);
if(first == second){
route_number = first;
System.out.println("route equal route_number.");
//Here I mam getting the error.
new Handler().removeCallbacks(new Runnable());
}else{
System.out.println("route equal ZERO.");
}
}
}
}, 1*30 * 1000);
我來仔細檢查,但看起來處理程序使用它們關聯的循環中的隊列,這意味着在技術上創建一個新的處理程序並調用removeCallbacks應該可以工作。儘管如此,我更喜歡你的方式,但你有一些錯誤:處理程序需要* final *,並在使用它之後創建runnable;) – Zharf
@Zharf:'Handler need to final' when它是在一個方法內部聲明的,但是如果你在類的層次聲明它並且在任何方法中初始化,那麼不需要最終確定它 –
沒錯,你的回答在代碼周圍有點不清楚。 – Zharf