2012-04-25 2 views
1

Я довольно новичок в этом, так что извините, если мой вопрос может быть тривиальным, и я уверен, что это основной материал, но на самом деле я не смог найти решение.Активность Android Autorefresh/

Я хотел бы реализовать autorefresh в активном действии. У меня есть BT-сервис, работающий в фоновом режиме и нуждающийся в подтверждении некоторых полученных данных через mHandler. Если он получит ожидаемое, я хочу изменить строку текстового представления, сейчас я использую дополнительную кнопку, но это самый уродливый способ. Так что мне нужна петля внутри действия, но что я должен использовать? какой слушатель действия?

ответ

-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

это не будет работать, потому что TextView принадлежит деятельности нити – 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

ya, если это правильно, тогда отметьте как ответ, чтобы другие не тратили на это время, и это будет полезно для других, которые ищут –

+0

Я снова смотрел. Моя деятельность настраивает сервис, поэтому они уже общаются. Моя активность начинается, подключается к устройству, я что-то посылаю и жду ответа, если ответ приходит, он должен обновить и показать измененный текст – BobbelKL