변수들은 이렇게 초기화되어있구요
private boolean power=false;
private double reach=5;
아래는 클릭이벤트랑 무한루프 메소드입니다
public void onClick(View v) {
if(chk_auto.isChecked()){
String num = editTextPhoneNumber.getText().toString();
editor.putString("NUM", num);
editor.putBoolean("chk_auto", true);
editor.commit();
}else{
editor.clear();
editor.commit();
}
switch(v.getId()){
case R.id.tw_login :
{
if(power==true){
Toast.makeText(this, "알림OFF", Toast.LENGTH_SHORT).show();
power = false;
}
else{
Toast.makeText(this, "알림ON", Toast.LENGTH_SHORT).show();
power = true;
sendSms(v);
}
}
}
}
public void sendSms(View v) {
new Thread(new Runnable() {
@Override
public void run() {
while (power) {
if(reach<=3){
try {
Thread.sleep(30000); //30초 딜레이
} catch (InterruptedException e) {
}
}
else{
/*
sm.sendTextMessage(
editTextPhoneNumber.getText().toString(),
null,
"테스트",
null,
null);
*/
Log.d("FbActivity","running");
try {
Thread.sleep(30000);
} catch (InterruptedException e) {
}
}
}
}
}).run();
}
while문 안에서는 버튼 클릭을 감지할 수 없다고 하여
스레드를 추가하면 된다는 글을 보고 따라해봤으나 안 되더라구요..
power가 true로 되어있는 동안(버튼이 1번 눌리면) 사용자가 입력한 번호로 문자메시지를 일정시간 간격으로 전송하고,
power가 다시 false가 되면(버튼이 다시 눌리면) 문자메시지 전송을 중단하는 기능입니다.
어디를 어떻게 고쳐야 할까요..?