簡體   English   中英

使用處理程序在一段時間后發送短信?

[英]Using a handler to send an sms after a period of time?

我是一名初學者程序員,如果沒有按下按鈕,我會在一段時間后嘗試發送短信。 我正在嘗試通過處理程序執行此操作,但是我知道它要聲明如果未按下按鈕的位置就是我的問題所在...

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

此代碼可以工作,但需要進行一些更改。 將處理程序變量保留在類成員中(而不是將其丟棄),並在按下按鈕時從處理程序中刪除所有待處理的消息。

只要手機不進入睡眠狀態,它就可以工作。 如果您的超時時間很長並且需要處理時手機可能處於睡眠狀態,則需要設置一個警報。 當您想延遲幾秒鍾而不是幾分鍾或更長時間時,此類處理程序非常有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM