`
酷的飞上天空
  • 浏览: 521751 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

startActivityForResult无法正确返回结果的奇怪问题

 
阅读更多

两个Activity,名称为A,B

 

1.在A中调用startActivityForResult(intent, requestCode) 方法启动B

 

2.然后在B中进行一些操作后调用

setResult(RESULT_OK);

finish();

返回结果给A

 

问题:当启动B时马上就执行了A中的onActivityResult(int requestCode, int resultCode, Intent data)方法

并且resultCode的值是0(即RESULT_CANCELED),此时B界面还尚未显示。。。。

 

 

奇怪的是为什么A页面的onActivityResult方法会提前执行,因为此时B页面并未执行

setResult(RESULT_OK);

finish();

 

 

最后找到原因:

是多加了这行代码intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

 

 

 

分享到:
评论

相关推荐

    StartActivityForResult

    如果你有多个`StartActivityForResult`的调用,确保每个请求码是唯一的,否则可能无法正确识别返回结果。可以使用常量定义请求码,比如`REQUEST_CODE_IMAGE_SELECTION`、`REQUEST_CODE_USER_PROFILE`等。 #### 4.2 ...

    StartActivityForResult小例子

    在Android应用开发中,`StartActivityForResult`是一个关键的机制,它允许一个Activity启动另一个Activity,并期待在后者完成时返回一些结果。这个过程涉及到两个主要的Activity:启动者(调用`...

    startActivityForResult的详细用法

    在Android应用开发中,`startActivityForResult`是一个关键的方法,用于从一个Activity启动另一个Activity,并期望在后者执行完特定操作后返回结果。这个方法在处理用户交互、数据选择(如从相册选取图片)、或者...

    startActivityForResult intent 跳转相关的

    另外,确保在`onActivityResult()`中正确处理所有可能的返回结果,包括异常情况,如用户取消操作或子Activity因为某种原因无法返回结果。 总结起来,`startActivityForResult()`是Android开发中的重要功能,它允许...

    startActivityForResult过时.md

    startActivityForResult过时.md

    【android】的startActivityForResult

    当结果返回时,会调用`onActivityResult`。 **五、应用场景** 1. **选择图片或文件**:从图库或文件管理器选择图片或文件,然后返回选择的路径。 2. **编辑内容**:在编辑界面修改数据,完成后返回主界面更新显示。...

    startActivityForResult Demo

    在Android应用开发中,`startActivityForResult`是一个非常重要的方法,它允许我们启动一个新的Activity,并在新Activity执行完特定操作后返回结果。这篇博客“startActivityForResult Demo”可能详细介绍了如何使用...

    Android之Intent通过startActivityForResult方法启动新Activity

    `startActivityForResult()`是Intent的一种特殊用法,它允许一个Activity启动另一个Activity,并期望在新Activity执行完特定操作后返回结果。下面将详细阐述`startActivityForResult()`的工作原理及其在实际开发中的...

    测试Activity的四种启动模式对startActivityForResult的影响

    这意味着,任何通过`startActivityForResult`启动的`Activity`都将被放入其他任务栈中,原`Activity`无法接收到返回结果。 了解了这些启动模式后,我们可以更有效地控制`Activity`间的通信。在使用`...

    startActivityForResult使用方式

    这个方法允许一个Activity启动另一个Activity,并等待返回的结果。在本篇中,我们将深入探讨`startActivityForResult()`的工作原理、如何使用以及它在实际开发中的应用场景。 一、`startActivityForResult()`基本...

    Android-一种startActivityForResult更简单流程

    在Android应用开发中,`startActivityForResult()`是一个关键方法,用于在不同的Activity之间进行通信,尤其是在需要从一个Activity返回结果到另一个Activity时。这个方法使得开发者可以启动一个新的Activity,并...

    startActivityForResult用法详解

    完成操作后,为了将结果返回给调用者,我们需要调用`setResult`方法: ```java Intent resultIntent = new Intent(); resultIntent.putExtra("selected_number", selectedNumber); setResult(RESULT_OK, ...

    startActivityForResult_demo

    在Android应用开发中,`startActivityForResult`是一个关键的API,用于从一个活动(Activity)启动另一个活动,并期望在新活动执行完毕后返回结果。这个方法使得不同活动间的交互变得可能,尤其在需要用户进行一些...

    startActivityForResult你所不知道的---Fragment

    `startActivityForResult()`方法在`Fragment`中使用与在`Activity`中大致相同,主要目的是启动一个新的`Activity`并等待结果。当目标`Activity`完成其任务后,会回调`Fragment`中的`onActivityResult()`方法,将结果...

    简化 startActivityForResult 的使用1

    这样,我们可以将 startActivityForResult 委托给 Fragment 去调用,让 Fragment 接收返回结果,然后将返回的结果封装到 Observable 里面,那么调用方只需要 subscribe 就好了。 OnResultHelper 类就是用来简化 ...

    Android-基于RxPermissions框架思想在使用startActivityForResult可以不重写onActivityResult回调

    在Android开发中,`startActivityForResult`方法是用于启动一个新的Activity并等待其返回结果的关键机制。通常情况下,当从子Activity返回时,我们需要重写`onActivityResult`回调来处理返回的数据。然而,随着...

    关于Activity与Fragment混用中对于startActivityForResult方法的解析示例

    在Fragment中,由于直接调用`startActivityForResult()`会导致结果无法被正确捕获,所以我们需要通过代理的方式,让Fragment的Activity来调用这个方法。一种常见的做法是添加一个接口到Fragment,由Activity实现这个...

    Android带有返回值的finish(StartActivityForResult)

    在Android应用开发中,`StartActivityForResult`是一个非常重要的机制,它允许我们在启动一个Activity后,在用户进行某些操作并关闭该Activity时,将结果数据返回到原来的Activity。这个过程涉及到了Activity之间的...

    startActivityForResult+onActivityResult+setResult

    3个方法的介绍和使用 startActivityForResult(Intent intent, int requestCode ) onActivityResult(int requestCode ,int resultCode, Intent data) setResult(int resultCode,intent intent)

Global site tag (gtag.js) - Google Analytics