마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

추가된 스레드의 while 안에서 버튼 클릭을 어떻게 감지하나요?

0 추천
변수들은 이렇게 초기화되어있구요

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가 되면(버튼이 다시 눌리면) 문자메시지 전송을 중단하는 기능입니다.
어디를 어떻게 고쳐야 할까요..?

 

뮴뮴 (140 포인트) 님이 2015년 5월 21일 질문

1개의 답변

0 추천
Handler 를 써야 될 거에요 ^^

쓰레드 안에서 핸들러 호출하면 될거같습니다
aabb (820 포인트) 님이 2015년 5월 21일 답변
정말 죄송한데 핸들러를 어떤 식으로 추가해야 하나요..?
아, 핸들러 추가 부분은 해결했습니다! 감사합니다!^^
...