繁体   English   中英

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

[英]How to pass data[] from thread to Activity

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

我想使用处理程序技术将乘法消息发送到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? 我想我不懂技术。 所以请有人解释一下我在学校跳过的内容。 谢谢。

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); }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM