如何将数据[]从线程传递到活动

时间:2019-01-10 09:55:11

标签: java android multithreading

我想从MainActivity 中创建的CalcThread发送连续生成的数据[] 到MainActivity中也创建的GraphActivitity。

我想使用Handler技术将乘法消息发送到Activity对象。希望有可能。我检查了所有提案,然后找到了。它们是:单次传输或不使用Handler或不添加第三方组件。据我了解,使用消息和处理程序是一种方便,安全且容易的技术。但是在我看来,这已经不太容易了,las。

In MainActivity:
//Start calculation thread
public void readStart(View v) {
    audioRecorder = new AudioReceiver(myAudioFormat);
    tAudioReceiverThread = new Thread(audioRecorder);
    tAudioReceiverThread.start();
}
//Start Graph Activity
public void openGraph(View v) {
    Intent intent = new Intent(MainActivity.this, GraphActivity.class);
    Handler hh = new Handler();
    audioRecorder.addHandler(hh);
    intent.putExtra("fff", (Parcelable) hh);//my fantasy
    startActivity(intent);
}

In AudioReceiver class:
public class AudioReceiver implements Runnable {

private List<Handler> handlers;
private AudioRecord mRecord;

public void addHandler(Handler handler)
    {
    handlers.add(handler);
    }

private void sendMsg(short[] data)
{   for(Handler handler : handlers)
    {
        handler.sendMessage(handler.obtainMessage(1, data));
    }}

In GraphActivity:
I have to get handler and register listener. Not sure. 

我的问题是。如何在列表中注册处理程序并将其传输到GraphActivity?我想我不懂技术。所以请有人解释一下我在学校跳过的内容。谢谢。

1 个答案:

答案 0 :(得分:0)

OpenGraph函数必须是这样的。 public void openGraph(View v) { Intent intent = new Intent(MainActivity.this, GraphActivity.class); Handler hh = new Handler(); audioRecorder.addHandler(hh); Bundle bundle = new Bundle(); bundle.putParcelable("hh",(Parcelable)hh); startActivity(intent,bundle); }