日期:2014-05-20  浏览次数:20731 次

多线程的出来
问题如下:
case 4:
                if(playFlag && myPlayer.inputData(playPort, paramArrayOfByte,byteLen)) {       
                    myThread.printData(paramArrayOfByte);
                    playFlag = true;
                }



public class MyThread extends Thread{
    private byte[] data;

    public MyThread() {
        //this.data=data;
    }
   
    public void printData(byte[] data){
        this.data=data;
    }

    @Override
    public void run() {
        // TODO Auto-generated method stub
        super.run();
        if(data==null){
            Log.i("DATA", "*************DATA为NULL********************");           
        }else{
            for(int i=0;i<data.length;i++){
                Log.i("DATA", data[i]+"");
            }
            Log.i("DATA", "***************************************");
        }
    }   
}
我只列出了要处理的代码部分。
请问我如何将“paramArrayOfByte”(是一个数组)传到一个线程中去打印出来。
我尝试过的方法:1.我建了一个线程类。在“处理语句1”中开启。但是这样会循环开启很多线程。
例子中的代码是我在初始话的时候开启的线程。在线程类中新建一个方法“printData”。将参数传给线程类。在run中打印。
但是这样数据并没有传过来。请问为什么?
------解决方案--------------------
直接一个带参构造函数不就可以了??public MyThread(byte[] data){this.data = data;}