2012-04-25 6 views
1

저는이 문제에 익숙하지 않아서 제 질문이 사소한 것이라면 미안합니다. 그리고 이것이 기본적인 것이라고 확신하지만 해결책을 찾지 못했습니다.Android Activity Autorefresh/

활성 활동에서 자동 새로 고침을 실현하고 싶습니다. 백그라운드에서 실행중인 BT 서비스가 있고 mHandler를 통해 수신 된 데이터에 대한 확인이 필요합니다. 그것이 내가 textview의 문자열을 변경하고 싶다는 기대를받는다면, 지금은 여분의 버튼을 사용하고 있지만, 그것은 가장 추악한 방법입니다. 그래서 활동 내에서 루프가 필요하지만 무엇을 사용해야합니까? 어떤 청취자?

답변

-1

어쩌면 당신은 스레드 내부 루프를 시도 할 수 있습니다

boolean update = false; // control the state to update textview 
    new Thread(new Runnable(){ 
     void run(){ 
      while(true){ 
       if(!update){ 
        ... 
        textview.setText("something."); 
        ... 
        update = true; 
       } 
      } 
     } 
    }.start(); 
+0

텍스트 뷰가 활동 스레드 – BobbelKL

0

확인 당신이 당신의 활동에 브로드 캐스트 리시버를 만들 수 있습니다 당신이 할 수 있습니다. oncreate에이 코드를 작성하십시오. 그것을 실제로 고친다. 나는 집에있다. 그래서 나는 그것을 고쳐야한다. 나는 당신에게 아이디어를 준다.

BroadcastReciever broadcast_obj = new BroadcastReciever (
         @overrieded 
         onRecieve(Intent intent) { 
           String action = intent.getAction(); 
           if(action == "my_bt_action") { 
           //UPDATE YOUR TEXTVIEW AND DO WHATEVER WORK YOU WANT. 
           } 
          }); 


Now you need to register your broadcast for that just put these line in your oncreate after creating Broadcast reciever which we have just done. 

registerREciever(broadcast_obj, new IntentFilter("my_bt_action"); 

now you need to send your broadcast when your service will perform your calculation or your task for that it is simple. 

Intent intent = new Intent (getApplictionContext,"my_bt_action"); 
sendBroadcast(intent); 

from above code you can easily communicate between your activity and service. 

hope it will work. 
+0

에 의해 소유 되었기 때문에이 작업이 효과가없는 것처럼 보입니다. 나중에 시도해 보겠습니다. onReceive는 방법입니다 :) – BobbelKL

+0

나중에 답이 정확하면 다른 사람이 시간을 낭비해서는 안되며 다른 사람이 검색하는 데 도움이 될 것입니다. –

+0

나는 다시 봤습니다. 내 활동이 서비스를 설정 중이므로 이미 활동 중입니다. 내 활동 시작, 장치에 연결, 뭔가를 보내고 응답을 기다리는 경우 응답이 새로 고쳐지고 변경된 텍스트보기가 표시됨 – BobbelKL