【从零之四】运用Handler另起线程运行科大讯飞语音识别

本文介绍了如何在Android应用中避免在主线程执行耗时的语音识别任务,转而在子线程中进行。通过自定义ClawnThread类并重写run方法,以及使用Handler来在识别完成后更新主线程的UI。详细步骤包括子线程的Looper初始化、登录操作以及在语音识别回调中传递结果。
摘要由CSDN通过智能技术生成

开始接触主线程和子线程之后觉得不应该在主线程中实现用户登录、语音识别还有合成这诸多工作,因为人们都说需要联网的工作最好另起新的线程。而且我调用语音包的程序跑起来也很复杂,所以本文就将介绍如何另起新线程运行语音识别。

关于前期准备工作参见前一篇博文

启动新的子线程主要要完成两个功能,一个是在子线程中定义如何运行自己的程序,第二个就是子线程完成了识别工作要及时通知主线程(又叫UI线程)以更新界面。

我的OutputActivity

public class OutputActivity extends Activity {
	private static final int ASK_USER_INPUT = 1;
	// Tip
	private Toast mToast;
	//语义理解结果显示
	private EditText mResultText;
	ClawnThread CoreThread = null;
	
	// Handler object
	private Handler MainHandler=new Handler(){
		public void handleMessage(Message msg){
			switch(msg.what){
			case ASK_USER_INPUT:
				mResultText.append(msg.obj.toString());
				//showSpeechUnderstanderNoPop();
				Log.e("haha","called");
				break;
			}
		}
	};
	class ClawnThread extends Thread{
		public
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值