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

再见!onActivityResult!你好,Activity Results API!

背景 在Android应用程序开发中,启动一个Activity不一定是单项操作,从启动的Activity获取数据是常见的场景,最传统的方式是通过Intent携带数据,然后使用startActivityForResult...方法来启动下一个Activity,然后通过onActivityResult来接收返回的结果,代码如下: 调用startActivityForResult方法启动 startActivityForResult...,这种方式非常有用,不仅能同一个应用中,也可以从其他应用中获取数据,比如我们常见的,调用系统相机、相册获取照片,获取系统通讯录等。...随着应用的扩展,onActivityResult回调方法各种嵌套、耦合严重、难以维护。 最常见的场景就是调用系统相机相册获取照片了。...Deprecated,那这两个方法不推荐使用了,Google推荐使用什么方式从Activity中更好的获取返回结果呢?

1.6K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    再见!onActivityResult!你好,Activity Results API!

    背景 在Android应用程序开发中,启动一个Activity不一定是单项操作,从启动的Activity获取数据是常见的场景,最传统的方式是通过Intent携带数据,然后使用startActivityForResult...方法来启动下一个Activity,然后通过onActivityResult来接收返回的结果,代码如下: 调用startActivityForResult方法启动 startActivityForResult...,这种方式非常有用,不仅能同一个应用中,也可以从其他应用中获取数据,比如我们常见的,调用系统相机、相册获取照片,获取系统通讯录等。...随着应用的扩展,onActivityResult回调方法各种嵌套、耦合严重、难以维护。 最常见的场景就是调用系统相机相册获取照片了。...Deprecated,那这两个方法不推荐使用了,Google推荐使用什么方式从Activity中更好的获取返回结果呢?

    1.8K20

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

    从一个Activity获取返回结果: 启动一个Activity不仅仅是startActivity(Intent intent)一种方法,你也可以通过startActivityForResult()启动一个...比如,你可以调用系统相机在你的应用中,拍了一张照片,然后返回到你的Activity,这个时候就可以通过这种方法把照片作为结果返回给你的Activity。...再比如,你可以通过这种方法启动系统联系人应用,然后获取一个人的详细联系方式。...startActivityForResult()方法,如果你在onResume之前调用了,那么所在的Activity就无法显示,直到启动的那个Activity退出然后返回结果,这是为了避免在重新定向到另外...处理返回结果: 下面的代码是如何处理获取联系人的结果: @Override protected void onActivityResult(int requestCode, int resultCode

    1.6K60

    C# 从零开始写 SharpDx 应用 从 D3DDevice 获取 DXGIDevice 方法

    本文将告诉大家在拿到了 D3D11 的 Device 也就是 D3DDevice 之后,如何去获取 DXGI.Device 以及 DXGI.Factory 的方法 本文是 SharpDX 系列博客,更多博客请点击...SharpDX 系列 在 C# 从零开始写 SharpDx 应用 初始化dx修改颜色 这篇博客完成了基础的初始化 而接下来如何根据之前的代码,也就是如何根据上一篇博客创建的 D3D11.Device 来创建对应的...DXGI.Device 以及 DXGI.Factory 对象 其实方法十分简单,我记录一下,因此我刚才在写一些逗比代码的时候,又忘记是如何创建的 其实在创建 D3D11.Device 就用到了 DxGI...SharpDX.DXGI.DXGIObject.GetParent(Guid riid, IntPtr& parentOut) at SharpDX.DXGI.DXGIObject.GetParent[T]() 而另一个方法获取是...>(); var dxgiDevice2 = _swapChain.GetDevice(); 可以看到这两个方法获取的对象是相同的,如下面代码 if

    1K10

    Fragment中调用startActivityForResult的那些坑

    方法中对于Fragment的startActivityForResult调用已经做了处理。...(intent, requestCode); } 所以从源码也可以看出,这种方式最后不会回调Fragment的onActivityResult方法 总结 在Fragment中调用startActivityForResult...以及监听onActivityResult是很常见的一种应用方式,但是稍不注意就会掉到坑里,比如因为Activity的onActivityResult方法没有调用super.onActivityResult...最后总结一下几种场景的应用步骤: (1)一个Activity嵌套一层Fragment,Fragment中需要监听onActivityResult返回结果 1....返回结果 这种情况和上面的是一样的,从上面的源码中我们可以看到,在哪个Fragment发起的startActivityForResult调用,只要父Activity的onActivityResult方法调用了

    2K10

    再见 onActivityResult!你好 Activity Results API

    ,比较常见的场景是从启动的Activity获取数据,传统的方式是使用startActivityForResult方法来启动下一个Activity,然后通过onActivityResult方法来接收返回的结果...,也可以从其它应用中获取数据,例如调用系统相机,相册获取图片,获取系统通讯录等。...但随之产生了许多问题,随着应用功能不断添加迭代,onActivityResult方法会存在各种处理数据的回调,嵌套严重,难以维护,并且还得定义一堆额外的常量REQUEST_CODE,用于判断是哪个请求的回调结果...介绍 Activity Results API 是 Google官方推荐的Activity、Fragment获取返回结果的方式。...调用系统相机拍照,返回为Bitmap的图片。 TakeVideo()。调用系统录像拍摄视频,保存到给定的Uri地址,返回一张缩略图。 PickContact()。从手机通讯录获取联系人。

    1.4K30

    【Android从零单排系列三十五】《Android四大组件——Activity》

    可以通过getResources()方法获取当前Activity的Resources对象。 方法: onCreate():生命周期方法,在Activity创建时调用,可以进行初始化操作。...onActivityResult():用于接收其他Activity返回的结果,通过Intent对象获取返回的数据。...重启阶段(可选): onRestart():当已停止的Activity再次启动时调用,此方法在Activity从后台重新回到前台时调用。...()启动: 当需要获取目标Activity返回的结果时,可以使用startActivityForResult()方法启动,并在目标Activity中调用setResult()方法设置返回结果。...如果该Activity已经存在于其他任务栈中,则会切换到该任务栈并调用其onNewIntent()方法。

    22610

    【Android 应用开发】Activity生命周期 与 Activity 之间的通信

    onCreate() : 初始化一些成员变量 , 如View等 , 此时进入停止状态; onStart() : 被用户可见之前调用 , 调用之后进入暂停状态 , 如果不满足条件我们不想让用户进入应用...> 调用onResume()方法进入激活状态;  (2)从Activity A 跳转到 Activity B  A先执行onPause()方法进入暂停状态 -> B执行onCreate()方法进入停止状态...从Bundle中取出数据 :  String string = bundle.getString("string")获取字符串数据....在Activity中想要取出跳转之前放入的数据 , 调用Activity的getIntent()方法 , 获取Intent对象 , 在调用Intent对象的方法获取数据; ①获取Bundle对象 ,...("name"); tv_second.setText(name); 注意 : 获取Bundle对象的方法 : getBundleExtra("key");从Bundle中获取数据的方法 : bundle.getString

    48230

    Android高频面试专题 - 基础篇(二)Fragment

    Fragment知识点不多,主要留意下回退栈和懒加载两点就差不多了,前提是其他点你也都掌握了,更多其他完整面试专题,请关注公众号获取。...2、Fragment生命周期 Fragment比Activity多了几个生命周期的回调方法 onAttach(): 当该Fragment被添加到Activity时被回调,该方法只会被调用一次。...onDetach(): 将该Fragment从Activity中删除、替换完成时回调该方法,在onDestroy()方法后一定会回调onDetach()方法,该方法只会被调用一次。...注意:除了onCreateView,其他的所有方法如果你重写了,必须调用父类对 于该方法的实现 ?...3、如何获取 FragmentManger Activity 中通过 getSupportFragmentManager获取 Fragment 中通过 getChildFragmentManager获取

    1.4K10

    Activity Result API详解,是时候放弃startActivityForResult了

    startActivityForResult()方法去向SecondActivity请求数据,然后在onActivityResult()方法中去解析SecondActivity返回的结果。...所以我刚才说了,startActivityForResult()方法并没有什么致命的问题。 那么接下来我们学习一下如何使用Activity Result API来实现同样的功能。...我们完全移除了对onActivityResult()方法的重写,而是调用registerForActivityResult()方法来注册一个对Activity结果的监听。...第二个参数是一个Lambda表达式,当有结果返回时则会回调到这里,然后我们在这里获取并处理数据即可。...这样我们就不需要再调用startActivityForResult()方法了,而是直接调用launch()方法,并把Intent传入即可。 这两种写法到底孰优孰劣呢?

    1.9K30

    C#开发移动应用系列(4.调用系统应用,以及第三方应用(调用与被调用))

    正文 1.学会调用各类系统应用 我们都知道,安卓有很多系统自带的应用..比如,打电话.发短信,相册,地图.Email.等等.. 今天我们就来一个个的调用,并传值....首先我们还是添加一个按钮,来测试调用第三方的应用. 如图: ?...(i,11); 细心的朋友已经发现了..在1.4之前我们最后一句,都是StartActivity来打开应用的,1.5我们则用到了StartActivityForResult 大家一看方法名就很明白了.....那么,我们如何获得返回值呢?,其实前面一篇已经提到过了..我们的OnActivityResult方法,就是获取返回值的....,所以下面,我们讲如何得到其他应用发过来的数据: App3中的代码如下: if (Intent.ActionSend == action) { //得到发过来的数据

    99970

    Activity Result API详解,是时候放弃startActivityForResult了「建议收藏」

    startActivityForResult()方法去向SecondActivity请求数据,然后在onActivityResult()方法中去解析SecondActivity返回的结果。...所以我刚才说了,startActivityForResult()方法并没有什么致命的问题。 那么接下来我们学习一下如何使用Activity Result API来实现同样的功能。...我们完全移除了对onActivityResult()方法的重写,而是调用registerForActivityResult()方法来注册一个对Activity结果的监听。...第二个参数是一个Lambda表达式,当有结果返回时则会回调到这里,然后我们在这里获取并处理数据即可。...这样我们就不需要再调用startActivityForResult()方法了,而是直接调用launch()方法,并把Intent传入即可。 这两种写法到底孰优孰劣呢?

    1.1K30

    如何在小程序中引入自有 API?

    如果小程序里需要调用一些宿主 App 提供的能力,而 FinClip SDK 未实现或无法实现时,就可以注册一些自定义 API。然后小程序里就可以像调用其他 API 一样调用注册的 API 了。...在 FinClip FIDE 中如何 mock 使用自定义 API 在 FIDE 中,有 mock 功能可以方便开发者在开发的途中 mock 模拟自定义 API 的返回结果。...小程序跳转到宿主App的页面,新打开的页面是添加到宿主App原有的任务栈中的,当从页面返回时,执行的逻辑是在原生App中原有的任务栈中弹出页面,因此会看到原生App的页面被逐个关闭,最后返回到原生应用启动小程序的页面...更重要的一个原因是:如果需要通过 startActivityForResult 来启动 Activity 并在页面返回时获取到回传的数据,只有使用这种方案,自定义接口的 onActivityResult...因此,在自定义接口的 invoke() 方法中,如果需要跳转到原生应用的其它页面执行某些操作,并期望当关闭这些原生页面后能够返回小程序,那么建议在执行跳转的时候为 Intent 对象同时增加 Intent.FLAG_ACTIVITY_MULTIPLE_TASK

    77210

    Android 中拍照、相册选择、裁剪照片

    好了,步入正题,在 Android 中调用摄像头拍照获取图片或者是从相册中选取图片是很常见的功能,比如某些 APP 上传头像的功能就是一个例子。...--> 读取裁剪后的图片 获取从相册选择的图片: 调用系统图库 --> 得到选择的图片的 Uri 并裁剪图片然后输出到指定目录 --> 读取裁剪后的图片 这里可能有些小伙伴会问了,为什么要调用系统的裁剪程序裁剪照片呢...然后我们对两个按钮的点击事件进行处理,分别对应于拍照和从相册选择图片,因为调用系统相机拍照是危险权限,所以我们要向用户申请授权,这两个权限的授权结果会回调 onRequestPermissionsResult...这两个方法的返回结果我们在 onActivityResult 方法中进行处理,这个方法当别的 Activity 返回给当前Activity 数据的时候就会被回调(即通过调用 startActivityForResult...方法来获取这个 Uri, 最后,对于两种获取图片的方法,我们都需要调用 cropPhoto 方法来对得到的图片进行裁剪,并且最后裁剪的图片输出到内存卡中以便读取。

    6K43
    领券