0
  class MyRunnable implements Runnable{
        public StringBuffer line2;
        public MyRunnable(StringBuffer _line){
             this.line2 = _line;
             Log.w("LINE", this.line2.toString());   // Return what it should
        }

        public void run(){
             console.append(this.line2.toString());   //Nothing happens here
        }
  }

これは私のコードです。メソッドから line2 にアクセスすると、run()長さが 0 になるという問題があります。

編集:これは私の電話です

        new Thread(new Runnable() {             
            @Override
            public void run() {
                StringBuffer line = new StringBuffer();
                while(true){
                    char a = UART.serialRead(UART.fd);

                    if(a != 0){                         
                        if (a == '\r' || a == '\n'){
                            MyRunnable obj = new MyRunnable(line);
                            handler.post(obj);
                            line.delete(0, line.length());
                            obj = null;
                        }else
                            line.append(a); 
                    }                   

                    try {
                        Thread.sleep(50);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                }

            }
        }).start();

私が間違っている場所はありますか?

4

2 に答える 2