不进入onReadyForSpeech()回调函数 再次调用就引擎忙错误,引擎在干什么
Ta的回复 :你可以看下startListening里面的源码,那是安卓系统的代码,不是百度写的,所以要优化你需要找出startListening方法里面为什么会出现消息冲突或者返回值错误问题,我个人经验是,因为这个里面写了些线程相关的事务,会出现锁和成员变量值被多次初始化问题,由于是系统源码我们是改不了的,只有满足系统需求的调用请求才能被正确执行,我想你可能是用的同一个意图调用startListening才会返回引擎忙, private int restartflag=-1; private void restart(String erro) { restartflag++; Intent intent=new Intent(); if (erro!=null&&erro.equals("引擎忙")) { intent = new Intent("com.baidu.action.RECOGNIZE_SPEECH"); intent.putExtra("restartflag",restartflag ); } speechRecognizer.startListening(intent); } 在异常返回最后加上这段代码试试