我有一个服务,它从一个名为“蓝牙”的活动中获取一个值的值,但是这个活动只有在用户点击一个按钮后才会启动。在“蓝牙”类中,我有一个静态变量,当用户单击按钮时,它的值会更新。但是该服务是在启动应用程序时启动的。因此,它采用默认值 (0) 。我希望服务继续感知静态变量的值并在静态变量更改时更新其行为。请帮忙.....
问问题
167 次
3 回答
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 回答
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 回答