onActivityResult不被执行的问题。

1、首先,返回的Activity必须使用startActivityForResult启动。

2、其次,在返回的Activity中必须保证setResult方法在finish方法之前执行,否则onActivityResult不会执行。

  由A启动B,在由B返回A时,执行过程如下:

  B---onBackPressed
  B---finish
  B---onPause
  A---onActivityResult
  A---onRestart
  A---onStart
  A---onResume
  B---onStop
  B---onDestroy

  所以,不能再B的onPause、onStop、onDestory方法里执行setResult方法,因为这样是没有意义的。

3、再次,必须保证requestCode >= 0,否则onActivityResult不会执行。

4、最后,必须保证android:launchMode属性值不为singleInstance,否则onActivityResult不会执行。

时间: 2024-10-29 07:52:31

onActivityResult不被执行的问题。的相关文章

【转】关于onActivityResult方法不执行的问题汇总

首先说说本人碰到的于onActivityResult不执行的情况.(网上找了很久都没有人碰到) 1.直接上代码说明 ActivityA的代码:(放在onCreate方法中) [java] view plaincopyprint? Intent intent = new Intent(ActivityA.this, ActivityB.class); Bundle bundle = new Bundle(); bundle.putString("abc", "aaaaaaaaa

当在Fragment中使用startActivityForResult()方法打开一个Activity,但是这个Fragment的onActivityResult方法不执行

注意Fragment使用startActivityForResult()方法打开一个Activity,并需要这个Activity销毁时通过onActivityResult()传递数据给打开他的Fragment.一般是没有问题的,但是如果这个Fragment依附的那个FragmentActivity也重写了onActivityResult()方法,那么这个Fragment的onActivityResult()方法就获取不到数据了(被那个依附的FragmentActivity接受了),这时候我们只需

关于Fragment 不响应onActivityResult的情况分析

大家都知道,可以通过使用 startActivityForResult() 和 onActivityResult() 方法来传递或接收参数. 但你是否遭遇过onActivityResult()不执行或者未按预想的那样执行的情况呢? 这里我总结了三种情况: 1.执行startActivityForResult,没等到被调用的 Activity 返回,onActivityResult() 就被执行了.找了很久,终于通过小道消息得知,这与 Activity 的加载模式(launchMode)有关,该属

Android基础:startActivityForResult 和 onActivityResult 问题

项目中用到弹出Acitivity来获得用户输入 所以用到 onActivityResult()方法接受用户输入 奇怪问题 startActivityForResult() 后直接调用 onActivityResult()    开发人员都知道,可以通过使用 startActivityForResult() 和 onActivityResult() 方法来传递或接收参数.然而在项目中,还没等到被调用的 Activity 返回,onActivityResult() 就被执行了.找了很久,终于通过小道

总结:调用startActivityForResult,onActivityResult无响应的问题

人人都知道,可以通过使用 startActivityForResult() 和 onActivityResult() 方法来传递或接收参数. 但你是否遭遇过onActivityResult()不执行或者未按预想的那样执行的情况呢? 这里我总结了三种情况: 1.执行startActivityForResult,没等到被调用的 Activity 返回,onActivityResult() 就被执行了. 找了很久,终于通过小道消息得知,这与 Activity 的加载模式(launchMode)有关,该

执行setResult后的回调顺序

A --> startActivityForResult --> B -->setResult 不执行finish 方法  A是在B执行了setResult方法还是B被finish后执行onActivityResult方法? A --> startActivityForResult --> B -->setResult --> finish 如果栈里面A和B中间还有activity  A将不会在(B setResult和finish)后执行onActivityRe

Android零散

2016-03-13 Android零散 ListView中嵌套GridView 要实现分组列表这样的效果:点击ListView中的分组名称,即展开此分组显示其包含的项目.使用ExpandableList可以实现展开这样的效果,如果对于列表中的每个可点击的标题View需要更多的定制,而不是简单的展开——例如点击全选等,那么可使用ListView嵌套GridView组合实现,ListView中嵌套的GridView应该是完全展开的——内外层都滑动的交互体验很别扭,而且实现起来麻烦.而对应的Grid

【Android】20.3 拍照和视频录制

分类:C#.Android.VS2015: 创建日期:2016-03-13 一.简介 Android提供的Camera有两个典型的版本,一个是在Android 5.0以前提供的,称为Camera:另一个是从Android 5.0开始提供的,称为Camera2. 这里仅演示使用系统Camera程序实现拍照的基本用法. 二.Camera基本概念 用Camera实现拍照和摄像功能时,有以下两种实现办法: 一是直接利用Intent启动系统自带的Camera App打开相机实现拍照和摄像功能,然后通过An

android 解决小米手机上选择照片路径为null情况

下返回的路径 为null,在网上搜索了下解决方案,现在把解决方案记录下: 这是在onActivityResult方法中执行的, [html] view plain copy print? if (data == null) { return; } uri = data.getData(); uri = geturi(data);//解决方案 String[] proj = { MediaStore.Images.Media.DATA }; Cursor cursor = managedQuery