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

从公共方法执行startActivityForResult时不会触发onActivityResult

这个问题涉及到Android开发中的Activity生命周期和Activity间的通信机制。当我们在一个Activity中调用startActivityForResult方法启动另一个Activity时,会在启动的Activity中执行一些操作,并返回结果给调用者。在调用startActivityForResult方法后,系统会将启动的Activity放入栈顶,并调用其生命周期方法onCreate、onStart和onResume。当启动的Activity执行完毕后,会调用其生命周期方法onPause、onStop和onDestroy,然后将结果返回给调用者。

在调用startActivityForResult方法后,调用者的onActivityResult方法会在启动的Activity执行完毕后被调用,用于接收返回的结果。但是,如果我们使用公共方法(例如Context类中的startActivityForResult方法)来启动Activity,而不是在Activity中直接调用startActivityForResult方法,那么调用者的onActivityResult方法将不会被触发。

这是因为公共方法中并没有提供回调机制来接收返回结果,所以无法触发onActivityResult方法。如果我们需要在公共方法中获取返回结果,可以考虑使用回调接口或广播等方式来实现。

总结起来,从公共方法执行startActivityForResult时不会触发onActivityResult方法,因为公共方法中没有提供回调机制来接收返回结果。如果需要获取返回结果,可以考虑使用回调接口或广播等方式来实现。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云移动应用分析(MTA):https://cloud.tencent.com/product/mta
  • 腾讯云移动推送(TPNS):https://cloud.tencent.com/product/tpns
  • 腾讯云移动直播(LVB):https://cloud.tencent.com/product/lvb
  • 腾讯云移动短信(SMS):https://cloud.tencent.com/product/sms
  • 腾讯云移动支付(MPS):https://cloud.tencent.com/product/mps
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android startActivityForResult和setResult的区别

2、startActivityForResult( ) 可以一次性完成这项任务,当程序执行到这段代码的时候,假若T1Activity跳转到下一个Text2Activity,而当这个Text2Activity...调用了finish()方法以后,程序会自动跳转回T1Activity,并调用前一个T1Activity中的onActivityResult( )方法。...(intent, 0);//这里采用startActivityForResult来做跳转,此处的0为一个依据,可以写其他的值,但一定要 =0 2.重写onActivityResult方法,用来接收B回传的数据...Android activity的setResult()在什么时候调用(重点也是难点) 如果在startActivityForResult起来的Activity里面设置setResult,结果并不会马上返回给...那么如果在如下方法中调用setResult()也有可能不会返回成功: onPause(), onStop(), onDestroy(), 因为这些方法调用不一定是在finish之前的,当然在onCreate

1.3K31

android onresume方法,Android onActivityResult()和onResume()的执行顺序

问题回顾: 在Android8.0手机上不能直接安装Apk,需要权限申请,回调后执行onActivityResult()方法,并弹出对应的dialog,这时需要判断当前Activity是否处于resume...状态,通过变量来控制,但结果是这个dialog并不会弹出。...问题本质 Activity跳转到系统应用后回调onActivityResult() 先执行还是onResume()先执行?...(意思是说当你的Activity重新启动 onActivityResult() 会在onResume()之前执行) 很显然,如果你的Activity 调用了 startActivityForResult...() 方法启动,回调之后会先执行 onActivityResult() ,然后执行onResume() 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/139798.

72320

onActivityResult!你好,Activity Results API!

背景 在Android应用程序开发中,启动一个Activity不一定是单项操作,启动的Activity获取数据是常见的场景,最传统的方式是通过Intent携带数据,然后使用startActivityForResult...方法来启动下一个Activity,然后通过onActivityResult来接收返回的结果,代码如下: 调用startActivityForResult方法启动 startActivityForResult...:1.3.0-alpha02 中,已经废弃了startActivityForResultonActivityResult方法。...最后,调用启动器的launch方法开启界面跳转 MainActivity中添加一个Button,点击Button,调用launch方法跳转: button.setOnClickListener {...ComponentActivity源码在这里: Fragment中源码在这里: 总结 新的Activity Result API提供了一种执行许多常见任务的简便方法,比如我们调用第三方APP 获取数据

1.5K40

onActivityResult!你好,Activity Results API!

背景 在Android应用程序开发中,启动一个Activity不一定是单项操作,启动的Activity获取数据是常见的场景,最传统的方式是通过Intent携带数据,然后使用startActivityForResult...方法来启动下一个Activity,然后通过onActivityResult来接收返回的结果,代码如下: 调用startActivityForResult方法启动 startActivityForResult...:1.3.0-alpha02 中,已经废弃了startActivityForResultonActivityResult方法。...最后,调用启动器的launch方法开启界面跳转 MainActivity中添加一个Button,点击Button,调用launch方法跳转: button.setOnClickListener {...总结 新的Activity Result API提供了一种执行许多常见任务的简便方法,比如我们调用第三方APP 获取数据,请求权限、拍照、选图片、获取联系人等等。

1.7K20

Android 蓝牙4.0代码解析

); 第一个参数:一个Intent对象 第二个参数:如果> = 0,当Activity结束requestCode将归还在onActivityResult()中。...以便确定返回的数据是哪个Activity中返回 代码写在旧窗体,在旧窗体里new 2个Intent(目的窗体2个不同的新窗体),requestCode用来区分是向哪个新窗体传消息,当离开旧窗体切换到新窗体消息显示在新窗体中...,是以便确认返回的数据是哪个Activity返回的。...Android进阶2之Activity之间数据交流(onActivityResult的用法) - 落日小屋 - 博客频道 - CSDN.NET  例子更形象、清晰 总结:调用startActivityForResult...在OnBind()方法中需返回一个IBinder实例,不然onServiceConnected方法不会调用。

1K50

安卓开发_startActivityForResult的详细用法

正文: startActivityForResult的主要作用就是它可以回传数据,假设我们有两个页面,首先进入第一个页面,里面有一个按钮,用于进入下一个页面,当进入下一个页面,进行设置操作,并在其finish...这个有一点像回调方法,就是在第二个页面finish()动作或者back动作后,会回调第一个页面的onActivityResult()方法。...,第二个页面回来的时候会执行这个方法 58 @Override 59 protected void onActivityResult(int requestCode, int resultCode...的onActivityResult(int requestCode, int resultCode, Intent data)方法。...为了知道返回的数据来自于哪个新Activity,在onActivityResult()方法中可以这样做(ResultActivity和NewActivity为要打开的新Activity):

87360

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

可以明显的看到,在androidx.activity1.2.0-alpha04开始,Android中这位你调用过无数次的startActivityForResultonActivityResult,...但倘若编写一个稍复杂的页面,需要同时请求相册、需要在其它Activity选择数据并回调、需要判断权限等等,继续使用startActivityForResult,会导致onActivityResult里掺杂各种嵌套及判断...ActivityResultLauncher、ActivityResultContract、ActivityResultCallback到底是些什么东西 ActivityResultLauncher 字面意思其实就能很好理解...,可以理解它就是一个Activity的启动器,它的作用就是承载启动对象与返回对象,通过registerForActivityResult返回该对象,这时并不会立即启动另一个Activity。...所以Activity Result API里,我的刚需似乎只是一个startActivityForResult那么简单, 那有更便捷的方法吗?

2K20
领券