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