waj*_*jiw 5 java multithreading android android-asynctask
我正在尝试使用类中的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.java
public class RecorderThread extends Thread {
[...]
@Override
public void run() {
[...audio process code...]
}
Run Code Online (Sandbox Code Playgroud)
有没有办法将我的RecordThread类中的数据回发到RecordActivity类?有没有办法使用2个不同的.java文件连接处理程序?
此外,这甚至是正确的方法吗?我应该使用AsyncTask吗?
将您的mHandleras 参数传递给您类的构造函数RecordThread,并用于mHandler.obtainMessage( ... ).sendToTarget()将数据传递给 Activity 类
在RecordActivity类上,声明并使用 Handler 如下:
private final Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
}
Run Code Online (Sandbox Code Playgroud)
那么这取决于你如何调用obtainMessage(),如果你使用过,例如,obtainMessage(int what, int arg1, int arg2)你可以使用msg.what、msg.arg1、 和来访问它们msg.arg2。
| 归档时间: |
|
| 查看次数: |
7132 次 |
| 最近记录: |