0

我是一名初学者程序员,如果没有按下按钮,我会在一段时间后尝试发送短信。我试图通过一个处理程序来做到这一点,但我知道我试图说明如果没有按下按钮是我的问题所在......

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);
4

1 回答 1

0

该代码可以工作,并进行一些更改。将处理程序变量保存在类成员中(而不是将其丢弃),当按下按钮时,从处理程序中删除任何未决消息。

只要手机不进入睡眠状态,这将起作用。如果您的超时时间很长并且手机在需要处理时可能处于睡眠状态,则您需要设置警报。当您想要延迟几秒钟而不是几分钟或更长时间时,这样的处理程序很有用。

于 2013-03-19T15:59:13.703 回答