Android暂停部分代码并等待Activity完成

时间:2013-10-01 12:27:07

标签: java android android-activity

嘿所以我有这个功能说话然后接受输入,然后尝试再次使用该输入说话。现在的问题是所有的说话都没有等待输入

public void fun(){
  speakOut("what is your name");
  startActivityForResult(intent, 2);
  speakout("how old are you");

}

我的程序有点像上面的例子。当我运行它时,它只询问第二个问题,然后运行活动(在我的情况下,它是一个语音RECOGNIZE_SPEECH意图。 所以我想要的是代码等待活动完成后再进行。或者我有什么不对劲?

编辑:

好吧我想我试图过多地简化我的问题= P. 事实上,我实际上有一个以上的问题要问。我正计划循环遍历它们,如:

for(int i=0;i<listOfQuestions.size;i++){
    speakOut(listOfQuestions.get(i));
    startActivityForResults(intent,2);
}

这就是为什么我不能在onActivityResult()中提出问题。除非,这就是我能做的事情

2 个答案:

答案 0 :(得分:1)

您应该查看此tutorial,其中说明了当您使用startActivityForResult()开始的活动结束时如何使用onActivityResult()进行通知。

答案 1 :(得分:0)

活动开始就像一个单独的程序(想象一下由该命令启动的线程)。从启动后,您的speakout函数被调用,并在加载意图之前快速处理。但实际上意图是在说出来之前启动了这个过程。如果你想在“

”中意图调用它后调用speakout
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
    if (requestCode == 2) {
        if (resultCode == RESULT_OK){
               do_something_with_data();
               speakout("how old are you");
          }
    }
}

另请阅读Getting a Result from an Activity文件。