我是初学程序员,如果没有按下按钮,我会在一段时间后发送短信。我试图通过一个处理程序来做到这一点,但我知道我在哪里试图说明如果没有按下按钮就是我的问题所在......
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
if (TakenButton.isActivated() == false) {
sendSMS(number, "Medication Not Taken");
}
}
}, 20000);
消息在20秒后发送,但即使按下按钮也会发送消息。如果有人可以解释我是否可以说明按钮是否被按下以及是否将其放置在正确的位置,我会非常感激?
我现在已将其更改为此,我现在没有得到任何消息说没有服用药物,但是我服用的药物正在工作?
public void onClick(View v) {
sendSMS(number, "Medication Taken");
isActivated = true;
}
});
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
if(isActivated = false){
sendsms();
}
}
private void sendsms() {
sendSMS(number, "Medication Not Taken");
}
}, 10000);
答案 0 :(得分:0)
这些代码可以工作,但有一些变化。将处理程序变量保存在类成员中(而不是将其丢弃),并在按下按钮时从处理程序中删除任何待处理的消息。
只要手机没有进入睡眠状态,这将有效。如果您的超时时间很长,并且手机可能在需要处理时处于睡眠状态,则需要设置闹钟。像这样的处理程序适用于想要延迟几秒钟而不是几分钟或更长时间的处理程序。