我有一个服务从名为“bluetooth”的活动中获取值的值,但此活动仅在用户单击按钮后启动。 在“bluetooth”类中,我有一个静态变量,当用户点击按钮时,其值会更新。但该服务是在应用程序启动时启动的。因此,它采用默认值(0)。我希望服务能够继续感知静态变量的值,并在静态变量的更改时更新其行为。请帮忙.....
答案 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。基本上,创建一个更新变量的方法,并确保只通过该方法更新变量。然后在该方法中,通过更新侦听器调用需要通知更新的类。