0

我有一个服务,它从一个名为“蓝牙”的活动中获取一个值的值,但是这个活动只有在用户点击一个按钮后才会启动。在“蓝牙”类中,我有一个静态变量,当用户单击按钮时,它的值会更新。但是该服务是在启动应用程序时启动的。因此,它采用默认值 (0) 。我希望服务继续感知静态变量的值并在静态变量更改时更新其行为。请帮忙.....

4

3 回答 3

0
 .......
   bool tr=true;
  new Thread(new Runnable() {
          public void run() {

            while (tr) {
                //check your static variable here

              try {
                Thread.sleep(1000);<-----(1)
              } catch (InterruptedException e) {
                e.printStackTrace();
              }



            }
          }}
           }).start();

把它放在你的服务onCreate..它将每1秒检查一次..你可以通过改变标记线来改变频率(1)

于 2012-04-10T16:04:08.267 回答
0

如果可以,请使用观察者模式。基本上,创建一个更新变量的方法,并确保仅通过该方法更新变量。然后在该方法中,通过更新侦听器调用需要通知更新的类。

于 2012-04-10T16:06:18.997 回答
0

也许有这样的事情:

...
startChecking();
...



void startChecking(){

   Handler mhandler = new Handler ();
   mhandler.postDelayed( new Runnable(){

      void run(){
        checkStaticValueHere;
        startChecking();
      }
   }, 500);  
}
于 2012-04-10T15:57:38.717 回答