0

「Bluetooth」というアクティビティから値の値を取得するサービスがありますが、このアクティビティはユーザーがボタンをクリックした後にのみ開始されます。「bluetooth」クラスには、ユーザーがボタンをクリックすると値が更新される静的変数があります。ただし、アプリの起動時にサービスが開始されます。したがって、デフォルト値(0)を取ります。サービスが静的変数の値を検知し続け、静的変数の変更時にその動作を更新することを望んでいます。助けてください.....

4

3 に答える 3

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 に答える
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 に答える