2011-06-03 61 views
0

我正在做這個應用程序,我做了接入點掃描,以獲得來自所有APs的信號強度值..我想掃描1秒接一個.. 現在我正在實施這個以下列方式:如何使接入點掃描計時器,以便掃描每秒運行?android!

Runnable t = new Runnable() { 

     public void run() 
     { 
    Log.i(TAG3, "startedScan");   
    wifiManager.startScan(); 

    try { 
     handleScanResults(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    mHandler.postDelayed(this, 600); 
     } 
    }; 

保護無效的SetTimer() { mHandler.post(T); }

正如你可以看到這是正在做的每個600毫秒,雖然與此計時器的問題是,「我猜!」每次運行時都會創建另一個線程。 我該如何解決這個問題,隨着時間的推移,應用程序開始變得沉重,我無法與它互動.. 請幫助!

+0

很好的問題是,我接受,但只有真的管用幾time..when我又改變了我的代碼,這個問題開始發生,現在我甚至不能像我那樣運行它.. – Mark 2011-06-03 18:41:41

回答

0

startScan()不會觸發一次,它會在一段時間內返回結果(這是我的經驗)。

所以最好的情況是: - startScan() - 等待結果,我建議一定量的時間 - 然後調用startScan()再次

600毫秒每startScan之間()是對於android來說太多了,我不認爲第一個結果甚至會在如此短的時間內返回(?)

這是什麼?你是否試圖確定一個有信號強度的位置,或者你爲什麼需要每秒鐘調用它?

每5或10應該足夠,得到的結果汽車無