1

私はこれにかなり慣れていないので、質問が些細なことでしたら申し訳ありません。これは基本的なことだと確信していますが、実際には解決策を見つけることができませんでした.

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

4

2 に答える 2

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.
于 2012-04-25T15:21:15.817 に答える
-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();
于 2012-04-25T15:08:54.230 に答える