java– 如何将数据从单独的线程类传递到Android中的活动

java– 如何将数据从单独的线程类传递到Android中的活动,第1张

概述我正在尝试使用类中的AudioRecord分析音频.我的问题是,我不知道我要尝试的路线是否正确,并将其线程化为一个单独的流程.我想要做的是在主UI线程中监听该进程,并根据线程中的数据不断更新文本框.这是我到目前为止://RecordActivity.java [...] public class RecordActivity extends Activity

我正在尝试使用类中的AudioRecord分析音频.我的问题是,我不知道我要尝试的路线是否正确,并将其线程化为一个单独的流程.我想要做的是在主UI线程中监听该进程,并根据线程中的数据不断更新文本框.

这是我到目前为止:

//RecordActivity.java[...]public class RecordActivity extends Activity {    final Handler mHandler = new Handler();    final Runnable mUpdateResults = new Runnable() {        public voID run() {            updateResultsInUi();        }    };    RecordThread t = new RecordThread();private OnClickListener mClickListener = new OnClickListener() {  public voID onClick(VIEw v) {    t.start();  }}//RecordThread.javapublic class RecorderThread extends Thread {[...]@OverrIDepublic voID run() {[...audio process code...]}

有没有办法将我的RecordThread类中的数据回发到RecordActivity类?有没有办法使用2个不同的.java文件连接处理程序?

此外,这甚至是正确的方法吗?我应该使用AsyncTask吗?

最佳答案将mHandler作为参数传递给RecordThread类的构造函数,并使用mHandler.obtainMessage(…).sendToTarget()将数据传递给Activity类

在RecordActivity类中,声明并使用Handler作为:

private final Handler mHandler = new Handler() {    @OverrIDe    public voID handleMessage(Message msg) {    }

然后它依赖于你如何调用obtainMessage(),如果你使用了,例如,你可以通过使用msg.what,msg.arg1和msg.arg2来获取它们的getsMessage(int what,int arg1,int arg2). 总结

以上是内存溢出为你收集整理的java – 如何将数据从单独的线程类传递到Android中的活动全部内容,希望文章能够帮你解决java – 如何将数据从单独的线程类传递到Android中的活动所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1139708.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-31
下一篇2022-05-31

发表评论

登录后才能评论

评论列表(0条)

    保存