如何使服务获取静态变量的更新值而不是默认值

时间:2012-04-10 15:40:47

标签: android

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

3 个答案:

答案 0 :(得分:0)

也许有这样的事情:

...
startChecking();
...



void startChecking(){

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

      void run(){
        checkStaticValueHere;
        startChecking();
      }
   }, 500);  
}

答案 1 :(得分: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..it将每1秒检查一次.. 您可以通过更改标记的行(1)

来更改频率

答案 2 :(得分:0)

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