2012-04-25 12 views
1

私はこれでかなり新しいので、ごめんなさい、私の質問が些細かもしれない、と私はこれが基本的なものだと確信していますが、実際には解決策を見つけることができませんでした。Android Activity Autorefresh/

アクティブなアクティビティで自動リフレッシュを実現したいと思います。バックグラウンドで実行中のBTサービスがあり、mHandlerを介して受信したデータの確認が必要です。期待したことを受け取った場合、私はテキストビューの文字列を変更したい、今私は余分なボタンを使用していますが、それは醜い方法です。 アクティビティ内にループが必要ですが、どうすればよいですか?どのアクションリスナーですか?

答えて

-1

たぶん、あなたは何ができるかOK

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

それは正解であれば他の人が時間を無駄にするべきではなく、それが他の人の検索に役立つようにマークしてください –

+0

私はもう一度見ました。 自分のアクティビティがサービスを設定しているので、すでに通信しています。 私の活動が始まり、デバイスに接続して、私は何かを送ってきて、答えが来たらそれを更新し、変更されたテキストビューを表示します。 – BobbelKL