2012-04-10 28 views
0

「bluetooth」というアクティビティから値の値を取得するサービスがありますが、このアクティビティはユーザーボタンをクリックします。 "bluetooth"クラスでは、ユーザーがボタンをクリックしたときに値が更新される静的変数があります。しかし、サービスは、アプリの起動時に開始されます。したがって、デフォルト値(0)が使用されます。私は静的変数の値を感知し続け、静的変数の変更時にその動作を更新するサービスを提供したいと思います。サービスにデフォルト値の代わりに静的変数の更新された値を取得する方法

... 
startChecking(); 
... 



void startChecking(){ 

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

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

答えて

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

1秒ごとにチェックしますonCreate..itあなたのサービスでこれを置く。.. あなたが周波数を変更することができます.....

+0

ありがとう.....この手順は私のために働いた.... :) –

+0

私はこれに同意しない。決してメインスレッドでTHREAD.sleepを使用しないと、アプリがクラッシュしてアプリが応答しなくなります – Snake

+0

申し訳ありません..私はこれを覚えていません..これはメインスレッドにはないので...あなたはthread.sleepを使用できると思います。 。 – 5hssba

0

はたぶん、このようなものを持って助けてください(1)

0

可能であれば、Observer patternを使用してください。基本的には、変数を更新するメソッドを作成し、そのメソッドを使って変数を更新するようにしてください。その後、そのメソッドで、更新リスナーを介して更新を通知する必要があるクラスを呼び出します。

関連する問題