ฉันมีปุ่ม ("ตรวจสอบ") ซึ่งเริ่มนับถอยหลังซึ่งเมื่อถึงศูนย์โทรศัพท์จะสั่น การกด "ตรวจสอบ" อีกครั้งจะปิดการสั่นและกระบวนการจะเริ่มต้นใหม่ การกด "แจ้งเตือน" จะส่ง SMS ไปยังหมายเลขที่กำหนดไว้ล่วงหน้าเมื่อใดก็ได้ นั่นคือรหัสของฉันจนถึงตอนนี้ และเท่าที่เป็นไป มันก็ทำงานได้ดี แต่ฉันต้องการเชื่อมต่อฟังก์ชันเหล่านี้ เพื่อที่ว่าเมื่อการสั่นเริ่มต้นขึ้น ผู้ใช้จะมีเวลาสิบวินาทีในการแตะ "ตรวจสอบ" และรีสตาร์ทตัวจับเวลา ไม่เช่นนั้นฟังก์ชัน "แจ้งเตือน" จะเริ่มโดยส่ง SMS ฉันจะไปเกี่ยวกับเรื่องนี้ได้อย่างไร? ฉันจะต้องนับถอยหลังอีกหรือไม่?
รหัสปุ่ม "ตรวจสอบ" จนถึงปัจจุบัน:
check.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
vibe.cancel();
if (countDownTimer != null)
countDownTimer.cancel();
countDownTimer = new CountDownTimer(timerTime * 1000, 1000) {
@Override
public void onTick(long milliseconds) {
long minutes = milliseconds / 60000;
long seconds = (milliseconds / 1000) % 60;
minsLeft.setText(getString(R.string.minutes) + (int) (minutes) + " seconds:" + (int) (seconds));
}
@Override
public void onFinish() {
minsLeft.setText("Are You OK?");
long[] pattern = {100, 1000, 100, 2};
vibe.vibrate(pattern, 1);
}
}.start();
}
});
}
รหัสปุ่ม "แจ้งเตือน" (จะเรียกว่ารหัสนี้หากไม่ได้กด "ตรวจสอบ" อีกครั้ง):
public void onAlertClick(View view) {
Toast sent = Toast.makeText(getApplicationContext(), "Alert Sent", Toast.LENGTH_SHORT);
Toast permissions = Toast.makeText(getApplicationContext(), "Please change app permissions in settings", Toast.LENGTH_SHORT);
try {
SmsManager.getDefault().sendTextMessage(getString(R.string.smsNumber), null,
getString(R.string.smsMessage), null, null);
sent.show();
} catch (Exception e) {
permissions.show();
}
}