Java 使用处理程序在一段时间后发送sms?
我是一个初学者程序员,我试图发送一段时间后,如果一个按钮没有按下短信。我正试图通过一个处理程序来实现这一点,但我知道,我想说的是,如果没有按下按钮,我的问题就出在这里Java 使用处理程序在一段时间后发送sms?,java,android,sms,handler,Java,Android,Sms,Handler,我是一个初学者程序员,我试图发送一段时间后,如果一个按钮没有按下短信。我正试图通过一个处理程序来实现这一点,但我知道,我想说的是,如果没有按下按钮,我的问题就出在这里 Handler handler = new Handler(); handler.postDelayed(new Runnable() { public void run() { if (TakenButton.isActivated() == false) {
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);
该代码可以工作,但需要进行一些更改。将处理程序变量保留在类成员中(而不是将其丢弃),并在按下按钮时从处理程序中删除任何挂起的消息 只要手机不睡觉,这项功能就可以正常工作。如果您的超时时间很长,并且手机在需要处理时可能处于休眠状态,则需要设置闹钟。这样的处理程序适用于需要延迟几秒钟,而不是几分钟或更长时间的情况