[英]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.