如何为接入点扫描制作定时器,以便扫描每秒运行一次?android!

时间:2011-06-03 17:35:29

标签: android timer

我正在做这个应用程序,我做了一个接入点扫描,以获取所有AP的信号强度值..我想让扫描一秒钟一个接一个.. 现在我正在通过以下方式实现这一点:

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 );
      }
  };
     

protected void setTimer()     {         mHandler.post(T);     }

正如你所看到的那样,每600毫秒就会完成这个,虽然这个计时器的问题是“我猜!”每次运行时都会创建另一个线程。 我怎么能解决这个问题,随着时间的推移,应用程序开始变得沉重,我无法与它进行交互。 请帮助!

1 个答案:

答案 0 :(得分:0)

startScan()不会触发一次,它会在一段时间内返回结果(这是我的经验)。

所以最好的方案是:  - 开始扫描()   - 等待结果,我建议一定的时间   - 然后再次调用startScan()

每个startScan()之间的600毫秒对于android来说太多了,我不认为第一个结果甚至在如此短的时间内返回(?)

它是为了什么?你想确定一个有信号强度的位置,或者为什么你需要每秒调用它?

每5或10个应足以连续获得结果