首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

似乎使用"onActivityResult()“接收不到结果

"onActivityResult()"是Android开发中的一个方法,用于接收其他Activity返回的结果。当一个Activity启动另一个Activity并且希望获取后者的返回结果时,可以使用该方法。

该方法的使用步骤如下:

  1. 在启动另一个Activity的地方调用startActivityForResult()方法,传入要启动的Activity的Intent和一个请求码(requestCode)。
  2. 在被启动的Activity中,通过setResult()方法设置返回的结果,并在需要返回结果的地方调用finish()方法关闭当前Activity。
  3. 在调用startActivityForResult()的Activity中,重写onActivityResult()方法,该方法会在被启动的Activity关闭后被调用,可以在该方法中获取返回的结果。

以下是一个示例代码:

代码语言:txt
复制
// 启动另一个Activity
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
startActivityForResult(intent, REQUEST_CODE);

// 在被启动的Activity中设置返回结果
Intent resultIntent = new Intent();
resultIntent.putExtra("key", value);
setResult(RESULT_OK, resultIntent);
finish();

// 在调用startActivityForResult()的Activity中获取返回结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {
        // 处理返回的结果
        String result = data.getStringExtra("key");
        // ...
    }
}

"onActivityResult()"方法常用于获取其他Activity返回的数据,例如选择图片、拍照、登录等场景。通过该方法,可以实现Activity之间的数据交互。

腾讯云相关产品中,与移动开发相关的产品有腾讯移动分析(https://cloud.tencent.com/product/mta)、腾讯移动推送(https://cloud.tencent.com/product/tpns)、腾讯移动直播(https://cloud.tencent.com/product/mlvb)等,可以根据具体需求选择适合的产品。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Fragment中调用startActivityForResult的那些坑

方法没有调用super.onActivityResult()方法而导致Fragment中死活接收不到onActivityResult的回调。...最后总结一下几种场景的应用步骤: (1)一个Activity嵌套一层Fragment,Fragment中需要监听onActivityResult返回结果 1....()方法 3.Fragment中实现onActivityResult方法即可监听回调结果 (2)一个Activity嵌套多层Fragment,Fragment中需要监听onActivityResult...返回结果 这种情况和上面的是一样的,从上面的源码中我们可以看到,在哪个Fragment发起的startActivityForResult调用,只要父Activity的onActivityResult方法调用了...getActivity().startActivityForResult()、getParentFragment().startActivityForResult()除非你知道为什么要用这2种方式,否则不要随意使用

2K10
  • startActivityForResult被标记为弃用后,如何优雅的启动Activity?

    其实不然,因为上面代码的需求是一个单一的回调,所以看着似乎startActivityForResult更便于维护和使用。...但倘若编写一个稍复杂的页面,需要同时请求相册、需要在其它Activity选择数据并回调、需要判断权限等等时,继续使用startActivityForResult,会导致onActivityResult里掺杂各种嵌套及判断...而使用registerForActivityResult()可以多次调用以注册多个 ActivityResultLauncher 实例,用来处理不同的Activity结果,让代码更便于维护。...ActivityResultContract 是用来协定所需的输入类型以及结果的输出类型,Android默认提供了一些常用的定义,例如上面所使用到到ActivityResultContracts.StartActivityForResult...如果有需要,我会再写一篇使用较少的在单独的类中接收 Activity 结果和Activity Result API的源码解析。技术有限,若文中有错误遗漏之处,尽情谅解,也欢迎指正共同进步。

    2.6K20

    onActivityResult!你好,Activity Results API!

    方法来启动下一个Activity,然后通过onActivityResult接收返回的结果,代码如下: 调用startActivityForResult方法启动 startActivityForResult...onActivityResult回调里,并且还得定义一堆额外的常量REQUEST_CODE,用与判断是哪个请求的回调结果。..., resultCode, data); } } 可以看到,这两个方法都被标记为了Deprecated,那这两个方法不推荐使用了,Google推荐使用什么方式从Activity中更好的获取返回结果呢...在非Activity/Fragment的类中接收Activity的结果 在Activity和Fragment中,我们能直接使用registerForActivityResultAPI ,那是因为ConponentActivity...和Fragment基类实现了ActivityResultCaller 接口,在非Activity/Fragment中,如果我们想要接收Activity回传的数据,可以直接使用 ActivityResultRegistry

    1.6K40

    onActivityResult!你好,Activity Results API!

    方法来启动下一个Activity,然后通过onActivityResult接收返回的结果,代码如下: 调用startActivityForResult方法启动 startActivityForResult...onActivityResult回调里,并且还得定义一堆额外的常量REQUEST_CODE,用与判断是哪个请求的回调结果。..., resultCode, data); } } 可以看到,这两个方法都被标记为了Deprecated,那这两个方法不推荐使用了,Google推荐使用什么方式从Activity中更好的获取返回结果呢...在非Activity/Fragment的类中接收Activity的结果 在Activity和Fragment中,我们能直接使用registerForActivityResultAPI ,那是因为ConponentActivity...和Fragment基类实现了ActivityResultCaller 接口,在非Activity/Fragment中,如果我们想要接收Activity回传的数据,可以直接使用 ActivityResultRegistry

    1.8K20

    再见 onActivityResult!你好 Activity Results API

    方法来启动下一个Activity,然后通过onActivityResult方法来接收返回的结果。...但随之产生了许多问题,随着应用功能不断添加迭代,onActivityResult方法会存在各种处理数据的回调,嵌套严重,难以维护,并且还得定义一堆额外的常量REQUEST_CODE,用于判断是哪个请求的回调结果...介绍 Activity Results API 是 Google官方推荐的Activity、Fragment获取返回结果的方式。...非Activity/Fragment中接收数据 在Activity和Fragment中,我们能直接使用registerForActivityResult方法 ,那是因为ConponentActivity...和Fragment基类实现了ActivityResultCaller 接口,在非Activity/Fragment中,如果我们想要接收Activity回传的数据,可以直接使用ActivityResultRegistry

    1.4K30

    Android开源库自定义相机模块

    简介 相机模块库,自定义相机,通过简单的调用即可实现拍照、图片裁剪、录像及录像抓拍功能; 实现图片压缩,减少图片体积;自定义相机可避免使用系统相机导致的照片或视频体积过大问题; 内置相机及sd卡权限获取的处理...} } } module的build.gradle中加入依赖: dependencies { compile 'com.github.autume:syd-camera:v1.0.0' } 使用...1280); //相机预览界面最小宽度配置,高度根据屏幕比例自动配置 startActivityForResult(intent, CameraParaUtil.cameraRequestCode); 接收拍照返回...CropParaUtil.cropSrcPicPath, path); startActivityForResult(intent, CropParaUtil.REQUEST_CODE_FROM_CUTTING); } 接收裁剪返回...文件存储失败的情况下存入croppedBitmap public static Bitmap croppedBitmap; //拍照后的图片,文件存储失败的情况下存入pictureBitmap,裁剪时取不到本地文件则也作为图片裁剪的来源

    1.1K10

    Android使用Intent隐式实现页面跳转

    在上一篇文章中我介绍了使用Intent显式来实现页面向下跳转,接下来这篇文章主要介绍的是使用Intent隐式来实现向上跳转,什么意思呢,就是当我们从第一个页面跳转到第二个页面的时候我们可以从第二个页面跳转回去...); } }); } } 这里需要介绍几个知识点 Intent中提供了一系列putExtra()方法的重载,可以把我们想要的数据暂存在Intent中,在这里putExtra()接收了...接下来在看setResult()这个方法接收2个参数,第一个参数用于向上一个活动处理结果,一般只是用RESULT_OK或者RESULT_CANCELED两个值,第二个参数则把带有数据的Intent传递回去...由于我们使用的startActivityForResult()方法启动FIrstActivity的,所以我们需要在FIrstActivity被销毁之后回调上一个活动的onACtivityResult()...我们想要的结果就实现了。 以上就是本文的全部内容,希望对大家的学习有所帮助。

    1K21

    Android-使用Intent传递数据

    Intent方式启动SecondActivity,并通过putExtra()方法传递了一个字符串, 接收两个参数, 第一个参数是键,用于后面从Intent中取值, 第二个参数是要传递的数据。...StartActivityForResult()接收两个参数, 第一个参数还是Intent, 第二个参数是请求码,用于在回调中判断数据的来源。..., 第一个参数用于上一个活动返回处理结果,一般使用RESULT_OK和RESULT_CANCELED, 第二个参数把带有数据的Intent传递回去。...由于使用的是startActivityForResult()方法启动的SecondActivity的, 在被销毁之后会回调上一个活动的onActivityResult()方法,因此需要重写这个方法:...的值来判断数据来源, 确定数据是从SecondActivity返回的,在通过resultCode值来判断处理结果是否成功, 最后从data中取值打印出来。

    1.2K30

    Android开发笔记(一百六十二)蓝牙设备的连接与配对

    -- 如果Android6.0 蓝牙搜索不到设备,需要补充下面两个权限 -->     <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION...由于选择弹窗上面可选择“允许”还是“拒绝”,因此代码中要重写<em>onActivityResult</em>函数,在该函数中判断蓝牙权限的选择<em>结果</em>。...所以页面代码需要注册一个蓝牙搜索<em>结果</em>的广播<em>接收</em>器,在<em>接收</em>器中解析蓝牙设备信息,再把新设备添加到蓝牙设备列表。...new IntentFilter();         discoveryFilter.addAction(BluetoothDevice.ACTION_FOUND);         //注册搜索<em>结果</em>的<em>接收</em>器...增加绑定状态的变更动作 discoveryFilter.addAction(BluetoothDevice.ACTION_BOND_STATE_CHANGED); //注册搜索<em>结果</em>的<em>接收</em>器

    3.2K10

    【Jetpack更新之Fragment】1.3.0-alpha04 来袭,Fragment 间通信的新姿势

    () 方法被标记弃用了 「Activity Result API」 详情可参考 秉心说 的 是时候丢掉 onActivityResult 了 !...因此 Alpha 版本不适合在生产上使用 ❞ ? 来自我的另一篇博客 target fragment API 被弃用 其实 target fragment API 早已被弃用 ?...fragment 的实例,这很危险,因为目标 fragment 的状态是未知的 因此官方提供了这样的 API,它允许在一个 fragment 上设置结果,并将该结果在 fragment 的适当的生命周期中使用...添加了 FragmentResultOwner 这样的的抽象,用于处理 fragment result,其内部有两个方法 setResult setResultListener 前者用于发送数据,后者用于接收数据...lifecycle.getCurrentState() == Lifecycle.State.DESTROYED) { return; } // 观察生命周期,fragment started 后接收回调

    1.4K20

    Android WebView 上传文件支持全解析

    默认情况下情况下,使用Android的WebView是不能够支持上传文件的。而这个,也是在我们的前端工程师告知之后才了解的。...主要思路是重写WebChromeClient,然后在WebViewActivity中接收选择到的文件Uri,传给页面去上传就可以了。...当然如果需要打开相机拍照,也可以自己去使用打开相机拍照的Intent去打开即可。 处理选择的文件 ---- 以上是打开响应的选择文件的界面,我们还需要处理接收到文件之后,传给网页来响应。...因为我们前面是使用startActivityForResult来打开的选择页面,我们会在onActivityResult接收到选择的结果。...注意,其他要说的,重要 ---- 由于不同版本的差别,Android 5.0以下的版本,ValueCallback 的onReceiveValue接收的参数类型是Uri, 5.0及以上版本接收的是Uri

    63.1K273

    Android蓝牙详析 | 蓝牙的适配、权限、开启、搜索发现等处理

    本系列笔记概述 蓝牙传输优势:功耗低,传输距离还可以; 蓝牙聊天室案例 Android中蓝牙设备的使用 蓝牙权限(本文的讲解内容之一) 蓝牙功能开启(本文的讲解内容之一) 搜索蓝牙设备(本文的讲解内容之一..."/> 设置蓝牙——获取BlueAdapter 使用蓝牙需用到...表示设备自身的蓝牙适配器; 通过静态方法BlueAdapter.getDefaultAdapter()获得BlueAdapter; 整个系统只有一个蓝牙适配器,application可使用此BlueAdapter...BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);//结果返回回调到...BluetoothAdapter.ACTION_REQUEST_ENABLE); startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT);//结果返回回调到

    6.4K30

    【Android基础】利用Intent在Activity之间传递数据

    但是对于这个方法使用时的注意事项我给大家翻译一下: 这个方法只能用来启动一个带有返回结果的Activity,Intent的参数设定需要注意一下,你不能启动一个Activity使用singleTask的launch...,这是为了避免在重新定向到另外Activity时窗口闪烁; 接收返回结果: 当startActivityForResult()启动的Activity完成任务退出时,系统会回调你调用Activity的onActivityResult...处理返回结果: 下面的代码是如何处理获取联系人的结果: @Override protected void onActivityResult(int requestCode, int resultCode...extras.get("data"); mImageView.setImageBitmap(imageBitmap); } } 获取启动Intent: 在被启动的Activity中你可以接收启动这个...Intent在不同Activity进行信息传递和沟通的讲解,到此Intent系列文章完结,前两篇文章是关于Intent详解和Intent使用的文章,有什么不明白的请留言,大家共同学习,共同进步,谢谢!

    1.5K60
    领券