android - 当 child 开始与 parent 相同类型的 Activity 时,finishFromChild 和 onActivityResult 不会触发

标签 android

我有一个应用程序,它(为了简单起见)有两种类型的 Activity - Overview 和 DetailView。 Overview Activity 显示步骤列表,并允许用户启动与所选步骤相对应的 DetailView Activity 。

在 DetailView Activity 中,用户可以启动另一个 Overview,它显示与当前 DetailView 父级中不同的步骤。

在Overview中,DetailView是使用startActivityForResult()启动的。在 DetailView 中,当用户决定启动第二个 Overview 时,我调用 setResult() 和 finish() 然后启动新的 Overview。在这种情况下,onActivityResult () 和 finishFromChild () 不会触发。相反,它们会在父级完成时触发(!?)。

我希望这个问题不会太愚蠢:)

概述中的代码:

        Intent spIntent = new Intent ();
  spIntent.setClassName ("com.testing.testa", "com.testing.testa.Overview");

  spIntent.putExtra("id", itemId);
  spIntent.putExtra("local", isLocal);
  spIntent.putExtra("numberOfSteps", numberOfSteps);
  spIntent.putExtra("currentStep", swipeStepNumber);

  spIntent.putExtra("name", name);

  System.out.println ("swipeStepNum: " + this.swipeStepNumber);
  startActivityForResult (spIntent, 0);

...

public void onActivityResult (int requestCode, int resultCode, Intent data) {
  super.onActivityResult(requestCode, resultCode, data);
  System.out.pritnln ("Child ended with resultCode: " + resultCode);     }

来自 DetailView 的代码:

Intent spIntent = new Intent ();
spIntent.setClassName ("com.testing.testa", "com.testing.testa.Overview");
spIntent.putExtra("id", itemId);
spIntent.putExtra("name", sectionedAdapter.getItem(position).toString());
startActivity (spIntent);
Intent die = new Intent ();
die.putExtra ("die", true);
setResult (1, die);
finish ();

最佳答案

在您的 DetailView 中,您似乎正在开始一个新的概览,因此您将 O->D->O 作为您的 Activity 堆栈。如果您在 DetailView 代码中注释 startActivity,您将设置结果并调用 finish()。这应该使您从 DetailView (O->D) 返回到原始 Overview (O),结果在 onActivityResult 中。因此,您似乎需要决定是继续使用新的概览还是返回原始概览并返回结果。您无法前进到新的概览并让它看到结果。我希望这是有道理的。

关于android - 当 child 开始与 parent 相同类型的 Activity 时,finishFromChild 和 onActivityResult 不会触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2996362/

相关文章:

android - Odoo 数据库多条件 AND 和 OR Android

java - 可以将图像作为 ByteBuffer 发送到我的 Servlet 吗?

android - 使用 Glide 库时崩溃

php - android webview cookies 不工作

java - 从谷歌应用程序引擎发送post请求到php

android - 在 Chrome 自定义选项卡中从 WebView 打开链接时出现 ANR 对话框。我该如何调试?

android - 处理列表层次结构的正确方法

适配器中的Android帧动画

java-android error.cannot.find.symbol.variable

android - Robotium 相当于 Espresso 中的 drag()?