【问题标题】:Is it possible to make a loop pause waiting for activity inside it to finish?是否可以让循环暂停以等待其中的活动完成?
【发布时间】:2021-01-07 11:46:37
【问题描述】:

我正在尝试实现的一个想法是:遍历列表的元素,根据元素具有的特定值显示并等待不同活动的回音。

我认为可行的方法:

for (Model item:questionBank) {


if (item.getTaskType() == "taskType1") {
    Intent intent = new Intent(MainActivity.this, 2ndactivity.class);

    intent.putExtra("word", item.getWord());
    startActivityForResult(intent,REQUEST_CODE);


}}

在代码后面加上一个覆盖方法 onActivityResult。

发生的情况是应用程序启动了 Activity,但它还继续循环遍历元素而不等待启动的 Activity 完成...

是否可以让它等待开始的活动完成后再继续?

【问题讨论】:

  • 您可以在此处等待返回结果。结果将提供给 onActivityResult 方法。
  • @WajahatHussain 这正是我所追求的 :) 关于如何告诉代码“在这里等待得到结果”的任何建议?
  • 其实我们这里需要使用不同的逻辑来得到我们想要的结果。

标签: android android-activity


【解决方案1】:

在您的情况下,for 循环不会等待其他活动的结果。所以,我有另一个逻辑来解决这个问题。

在类级别声明一个迭代器变量,如int i = 0;

当您想为结果启动另一个活动时,从i index questionBank[i] 的列表中获取数据并启动activityForResult。

在onActivityResult方法中递增i。

i++
String word = questionBank[i];
startActivityForResult(intent,REQUEST_CODE);

这样,你就可以达到你想要的结果。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-20
    • 2020-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-24
    相关资源
    最近更新 更多