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

"onActivityResult“处的Android变量在KITKAT上有时为空值

onActivityResult是Android开发中的一个回调方法,用于接收Activity之间的结果。该方法在启动新的Activity后,当新的Activity结束并返回结果时会被调用。通常用于处理startActivityForResult方法启动的Activity返回的结果。

在KITKAT(Android 4.4)版本及以上的系统中,如果在启动新的Activity时使用了FLAG_ACTIVITY_FORWARD_RESULT标志,而新的Activity在设置结果后直接调用了finish方法来关闭自身,那么在onActivityResult方法中获取的返回结果可能为空。

这是因为在KITKAT及以上版本中,Activity的启动模式发生了改变,新的Activity不再直接回调启动它的Activity的onActivityResult方法,而是通过设置结果后调用自己的finish方法,然后在后台通过一个称为ActivityThread的线程来处理结果。这样的设计改变可能会导致onActivityResult方法在某些情况下接收到空值。

为了解决这个问题,可以通过在启动新的Activity时使用FLAG_ACTIVITY_CLEAR_TOP标志来避免空值的问题。该标志会使得新的Activity在设置结果后回到启动它的Activity并调用它的onActivityResult方法,从而确保结果能够正确传递。

腾讯云提供了丰富的云计算产品和服务,其中包括适用于移动开发的腾讯云移动开发套件、云服务器CVM、云数据库MySQL、云存储COS、音视频处理服务、人工智能服务等。这些产品和服务可以帮助开发者构建稳定、高效的云计算解决方案。

更多关于腾讯云的产品和服务信息,可以访问腾讯云官方网站: https://cloud.tencent.com/

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

相关·内容

使用友盟分享和登陆以及使用时要注意的坑

QQ分享成功却回调取消 1.AndroidManifest配置错误(图中箭头处应为你qq平台申请的AppId) ?...2.你是横屏应用,注意上图中AssistActivity的configChanges的配置,你的配置要与上图一致. 3.文字或图片分享到QQ说说有时回调取消有时回调成功,这是QQsdk的一个官方bug,...注意实现onActivityresult方法 在分享所在的Activity(不能复写在fragment)里实现下面的方法onActivityResult(); @Override protected...QQ登录获取的unionID为空 Android端,通过UShare提供的QQ登录功能可以实现获取unionID,以便实现同开发者账号下多个APP间账号ID打通, 但必须先通过邮件向腾讯官方申请,获取权限...QQ没有回调 如果QQ分享或授权没有回调,需要检查是否在进行分享操作的Activity中加入以下代码: @Override protected void onActivityResult

1.8K10
  • Android 图片选择到裁剪之步步深坑

    这一段代码在 Android 4.4 以下是可以正常运行的,不过从 Android 4.4 开始这里获取到的将为一个无效的路径,这是为什么呢?...),简单来说就是 Android 提供了一个专门供用户访问资源的软件,将设备上所有可以访问资源的软件接口都整合到了一起,避免了用户只能选择一个特定软件的尴尬,在 Android 4.4 以下,我们发送刚才选取图片的隐式...Intent,效果是这样的,需要用户去选择使用哪个应用: 而从 Android 4.4 开始,就变成了这样: 直接打开一个资源选取的软件(这个软件平时是隐藏的,不会显示在软件列表中),其中包含了访问设备上所有可访问资源软件的接口...不过这也带来了一个问题,从 Android 4.4 开始,在onActivityResult()方法的Intent中所包含的uri不再是file://类型,而是变成了content://类型,这也是为什么在...Android 6.0 之运行时权限 不知道大家发现了没有,之前保存图片的目录都是使用的Context.getExternalCacheDir(),这个方法获取到的目录为/sdcard/Android/

    1.9K80

    Android WebView 上传文件支持全解析

    默认情况下情况下,使用Android的WebView是不能够支持上传文件的。而这个,也是在我们的前端工程师告知之后才了解的。...,因此不需要加Override的注解,同时不同版本有不同的参数,其中的参数,第一个ValueCallback用于我们在选择完文件后,接收文件回调到网页内处理,acceptType为接受的文件mime type...在Android 5.0之后,系统提供了onShowFileChooser来让我们实现选择文件的方法,仍然有ValueCallback,在FileChooserParams参数中,同样包括acceptType...数组,在传值的时候需要注意。...选择文件会使用系统提供的组件或者其他支持的app,返回的uri有的直接是文件的url,有的是contentprovider的uri,因此我们需要统一处理一下,转成文件的uri,可参考以下代码(获取文件的路径

    63.9K273

    Android 使用腾讯X5内核, Webview浏览器拍照或从相册上传图片

    ,因此不需要加Override的注解,同时不同版本有不同的参数,其中的参数,第一个ValueCallback用于我们在选择完文件后,接收文件回调到网页内处理,acceptType为接受的文件mime type...在Android 5.0之后,系统提供了onShowFileChooser来让我们实现选择文件的方法,仍然有ValueCallback,在FileChooserParams参数中,同样包括acceptType...处理选择的文件 因为我们前面是使用startActivityForResult来打开的选择页面,我们会在onActivityResult中接收到选择的结果。...,Android 5.0以下的版本,ValueCallback 的onReceiveValue接收的参数类型是Uri, 5.0及以上版本接收的是Uri数组,在传值的时候需要注意。...2 选择文件会使用系统提供的组件或者其他支持的app,返回的uri有的直接是文件的url,有的是contentprovider的uri,因此我们需要统一处理一下,转成文件的uri,可参考以下代码(获取文件的路径

    2.1K30

    让 Android 的 WebView 支持 type 为 file 的 input,同时支持拍照

    Android 的 WebView 组件默认是不启用 type 为 file 的 input 的,需要在代码中做一些类似 hack 的编码(因为解决问题的目标对象的方法都是加了@hide注解的)才能召唤神龙...2、vCbFileChooser 变量维持着向页面回传值的 ValueCallback 对象,直到 onActivityResult。...,还要考虑到Android 6.0以上版本权限系统机制的变化);     2、choosePicFile 方法执行直接从已保存文件中选取图片的流程;    3、如果两中流程都没有,而是执行了取消操作(按下返回键或者点击了界面空白处...),那么 vCbFileChooser 变量也必须调用 onReceivValue 方法回传空值,保证type=file的input能反复使用。    ...API获取uri数据的方法不同;     2、无论取没取到 uri 数据,只要 vCbFileChooser 变量不为空,都必须调用一次 onReceiveValue 方法,而且这之后要将它以及相关变量置为

    1.6K20

    Android 图片裁剪

    创建好之后,在app的build.gradle添加如下代码,有两处 //JDK版本 compileOptions { sourceCompatibility JavaVersion.VERSION...//图片 private ImageView ivPicture; 然后在onCreate中绑定xml的id。下面你再使用这个ivPicture就不会报空对象了。...RESULT_OK是Activity中自带的。 然后在获取数据时判空处理一下再赋值给一个Uri变量,然后通过Glide框架加载这个Url显示在刚才的ivPicture上。...可以看到系统的剪裁并不是很彻底,gif中虽然演示的剪裁时是一个圆形,但实际上剪裁的是一个正方形的,这其实和Android系统版本及设置的参数有关系。...我在荣耀8和荣耀20i上运行都是这样的,对应的版本是8.0和10.0,效果基本一致。那么下面修改一下参数试试看,如下图我修改了宽高比例和剪裁后的宽高。 ? 再运行一下: ?

    2.6K20

    Android 图片裁剪 (附源码)

    创建好之后,在app的build.gradle添加如下代码,有两处 //JDK版本 compileOptions { sourceCompatibility JavaVersion.VERSION...这种方式在Fragment中并不是适用,请注意。 然后你就会在MainActivity中看到这样的方法,请注意一点,这个方法名与你onClick中的值必须要一致。...//图片 private ImageView ivPicture; 然后在onCreate中绑定xml的id。下面你再使用这个ivPicture就不会报空对象了。...RESULT_OK是Activity中自带的。 然后在获取数据时判空处理一下再赋值给一个Uri变量,然后通过Glide框架加载这个Url显示在刚才的ivPicture上。...我在荣耀8和荣耀20i上运行都是这样的,对应的版本是8.0和10.0,效果基本一致。那么下面修改一下参数试试看,如下图我修改了宽高比例和剪裁后的宽高。

    1.8K30

    Android打开系统拍照&相册获取头像

    Android打开系统拍照&相册获取头像 现在许多应用都有上传头像的功能,再次奉上代开系统相册或打开系统相机拍照的实现,有的同学在测试小米手机上打开选择相册有奔溃,此代码已完美解决此问题… 楼主,做的头像需要经过裁剪之后和圆形处理...onActivityResult @Override protected void onActivityResult(int requestCode, int resultCode, Intent...情况就有点多了 //**:在4.4.2之前返回的uri是:content://media/external/images/media/3951或者file://....在4.4.2...返回的是content://com.android.providers.media.documents/document/image:3951或者 //总结:uri的组成,eg:...各个不同的系统版本,对于获取外部存储上的资源,返回的Uri对象都可能各不一样,所以要保证无论是哪个系统版本都能正确获取到图片资源的话 //就需要针对各种情况进行一个处理了

    2.7K20

    拍照/选择相册,图片压缩旋转处理

    最近做项目需要用到拍照和选择相册照片,并显示出来imageview 上,然后压缩上传到服务器中,这本是一个非常常见的功能,但对于图片的处理确实一个技术活,稍微不注意会出现oom,图片压缩也要处理的刚刚好...为此每一种创建方法都提供了一个可选的Options参数 * ,将这个参数的inJustDecodeBounds属性设置为true就可以让解析方法禁止为bitmap分配内存 * ,返回值也不再是一个...* * @param reqWidth 目标宽度,这里的宽高只是阀值,实际显示的图片将小于等于这个值 * @param reqHeight 目标高度,这里的宽高只是阀值,实际显示的图片将小于等于这个值...inSampleSize的值,这样可以保证最终图片的宽和高 // 一定都会大于等于目标的宽和高。...根据需求进一步缩放,显示在imageview上。

    78620

    Android通过URI获取文件路径

    之前在工作的过程中,遇到不同 Android 版本下 URI 采用不同方式来获取文件路径的问题。 因为需求的原因,要求拍照上传或者从相册中选择图片上传,而且图片是需要经过压缩的,大小不能超过2M。...); intent.setType("image/*"); startActivityForResult(intent, FILE_CHOOSER_RESULT_CODE); 之后就是在 onActivityResult...比如,现在 URI 为 content://media/extenral/images/media/17766 ,而我们需要得到对应的文件路径。...因为在 Android 4.4 及以上的手机上,获取到的 URI 变成了 content://com.android.providers.media.documents/document/image%3A235700...这是因为在 Android 4.4 及以上的机型,使用了 DocumentUri 来代表获取到文件的 URI 。 所以我们又要对于 DocumentUri 进行适配。

    3K60

    Android 透明状态栏(伪沉浸式)

    4.4 以上要做所谓沉浸式,其实不是真正意义上的沉浸式,只是一种透明状态栏。 而由于 Android API 的不同,需要考虑 4.4、5.0、6.0 前后的不同。...适配 5.0 和 6.0 以上 应用风格如果是白色的,想把状态栏也设置成白色的,会导致状态栏上的图标文字看不见了,经查询发现 6.0 以上可以修改状态栏图标文字风格,可以改成黑的,但是 6.0 以下版本无解...体验了 QQ 浏览器,因为网页大多都是纯白的,在 6.0 的手机上状态栏背景纯白,图标文字改成黑的了,但在 5.1 的手机上图标文字没法改,它是把背景做成灰色的了。...MIUI 上这么加状态栏下面会有黑边 // ((ViewGroup)decorView.findViewById(android.R.id.content)).addView(...View 的,感觉没什么意义,调用者一般应该明确传颜色,不传可能就是根 View 上设了背景之类。

    2.4K20

    Android各版本迭代信息集合

    Android 7.0 Android 7.0 引入一项新的应用签名方案 APK Signature Scheme v2 Toast导致的BadTokenException 在Android7.0系统上...--androidx版本类路径为:androidx.core.content.FileProvider--> 2)编写xml文件,确定可访问的目录 android="http...对于针对 Android 8.0 的应用,系统只会授予应用明确请求的权限。然而,一旦用户为应用授予某个权限,则所有后续对该权限组中权限的请求都将被自动批准。...修改通知 Android 8.0 对于通知修改了很多,比如通知渠道、通知标志、通知超时、背景颜色。其中比较重要的就是通知渠道,其允许您为要显示的每种通知类型创建用户可自定义的渠道。...这应该是个bug,在Android8.0中出现,8.1中被修复。 我们的处理办法就是要么去掉设置方向的代码,要么舍弃透明效果。

    1.2K20

    【Android 内存优化】Bitmap 图像尺寸缩小 ( 设置 Options 参数 | inJustDecodeBounds | inSampleSize | 工具类实现 )

    Bitmap 对象 ; ③ 样本个数 : 样本的大小是在两个维度计算的像素个数 , 每个像素对应一个解码后的图片中的单独的像素点 ; ④ 样本个数计算示例 : 如果 inSampleSize 值为 2...解码像素格式 : ① 指定配置解码 : 如果配置为非空 , 解码器会将 Bitmap 的像素解码成该指定的非空像素格式 ; ② 自动匹配配置解码 : 如果该配置为空 , 或者像素配置无法满足 , 解码器会尝试根据系统的屏幕深度...与 BitmapFactory 配合使用 : ① Android 4.4 以后的复用机制 : 在 KITKAT 以后的代码中 , 只要被解码生成的 Bitmap 对象的字节大小 ( 缩放后的 ) , 小于等于...inBitmap 的字节大小 , 就可以复用成功 ; ② Android 4.4 之前的复用机制 : 在 KITKAT ( Android 4.4 系统 , android-19 平台 ) 之前的代码中...在 KITKAT 以后的代码中 , 只要被解码生成的 Bitmap 对象的字节大小 ( 缩放后的 ) 小于等于 inBitmap 的字节大小 , 就可以复用成功 ;

    3K20
    领券