android 调用第三方apk setResult回来intent为null

有2个程序互相调用,A程序通过发intent,使用startActivityForResult()方法, 调用B程序,B程序启动后做了一些自己的事,其中会切换很多activity 显示B自己的UI, 现在我在B处理完逻辑后,通过发intent或者handler的方式把参数传回给B程序的主入口activity, 再通过此activity调用setResult()方法返回给A程序,现在发现A程序的onActivityResult()接收的intent为null,请问这是怎么回事?

PS,如果在A调用B之后, 在B的onCreate()方法里直接setResult()回来,A是可以拿到参数的,但是在B程序中运行了一圈回来再回传给A就拿不到参数了。

有没有大神能说下原因。

0
suannai0314
鹳狸媛 楼主的这个问题解决了么?下边的答案能解决问题么?如果可以麻烦点击答案旁的√采纳哦~如果没有也可以将自己的答案贴上然后进行采纳的。
5 年多之前 回复

1个回答

运行了一圈回来,回来的还是之前的Activity吗?还是重新启动的,要保证是之前startActivityForResult()启动的Activity才可以

1
songzhiyong1121
Jerome_Song 那就不知道了,没看具体代码,只能猜测一下,抱歉没能帮上你的忙
5 年多之前 回复
iceman_lj
iceman_lj 是singleTop
5 年多之前 回复
songzhiyong1121
Jerome_Song 如果是singleInstance或者singleTask,你会马上得到结果,data为null ,requestCode是正确的,resultCode是0;根本不用B调用setResult
5 年多之前 回复
songzhiyong1121
Jerome_Song 那你启动B的Activity(调startActivityForResult()方法的Activity)的启动模式是什么?
5 年多之前 回复
iceman_lj
iceman_lj 发现onActivityResult() 接收的参数里 requestCode是正确的 resultCode是0
5 年多之前 回复
iceman_lj
iceman_lj 我之前也怀疑这个,后来打出log看到activity的地址是一样。
5 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于setResult在ActivityA中收到的resultcode值为0的问题
问题:收到的resultcode为0,但是在setResult()方法中设置的值为2。解决方案:保证两点1、setresult时如果intent不携带数据,也就是data是null,这时候使用setresult(resultcode)而不是setresult(resultcode,intent)。2、setresult()要在finish()方法之前调用。原因猜想:是onactivityresul...
今天学习时看到Intent的setResult方法,不太懂。于是百度了一下
转载至https://www.cnblogs.com/fuck1/p/5456337.htmlAndroid的startActivityForResult()与onActivityResult()与setResult()参数分析在一个主界面(主Activity)通过意图跳转至多个不同子Activity上去,当子模块的代码执行完毕后再次返回主页面,将子activity中得到的数据显示在主界面/完成的...
android onActivityResult()接收返回数据为null的解决方案
对于·app多个界面管理,如果一般使用Activity默认的加载模式,按返回键就会退回上一次操作,就是一种新建一个Activity实例。时间长了就会变得卡顿,一般人会选择手动地在代码中屏蔽返回键,使用app中开发的返回键,这样也可以解决问题。           但是本质问题还是没解决,不可能以后开发也用这样的方法,用多了也烦躁。所以解决这个问题的关键在于了解Activity的加载模式。  
安卓开发没有关闭界面就调用了onActivityResult方法?onActivityResult方法Intent-data总是null
开发是遇到一个问题,在一个Activity的启动模式是单一实例的时候(AndroidManifest.xml中对Activity的launchMode设置),这样设置的话,会在调用startactivityforresult方法后直接调用onActivityResult方法里边的东西,自然你的intent也就没有了,是null的了,都没有返回。  最后附上Activity页面跳转时候的方法调用
setResult(RESULT_OK)不成功的原因。
ActivityA 启动Activity B。 A: activity.startActivityForResult(intent, requestCode) B: setResult(RESULT_OK); finish(); A:onActivityResult 发现得到的resultCode并不是RESULT_OK。 原因是在B中我们设置了android:l
打开第三方Activity前判断Intent能否被解析
在自己的应用程序中利用第三方应用程序的Activity和Service是十分方便的,但是你无法保证用户设备上安装了特定的某个应用软件,或者设备上有能够处理你的Intent请求的程序。  因此,在启动第三方APK里的Activity之前,确定调用是否可以解析为一个Activity是一种很好的做法。 通过Intent的resolveActivity方法,并想该方法传入包管理器可以对包管理器进行查询
SingleTask与onActivityResult之间关系的简单讨论
很多博客里说,在LaunchMode设置为SingleTask之后,是调用方的onActivityResult会在打开的瞬间被调用,无法取得正常的结果,因此来验证一下。 概括以下大写字母均表示为Activity. ->代表startActivity =>代表startActivityForResult 第一个场景: A=>B A打开B,并需求返回值 B=>C B打开C,并需求返回值 C->B C打开
Android 打开第三方应用的方法
一、打开第三方应用 方法一Intent intent=new Intent(); //包名 包名+类名(全路径) intent.setClassName("com.linxcool", "com.linxcool.PlaneActivity"); startActivity(intent); 方法二Intent intent = new Intent(); ComponentN
Android调用系统照相机返回intent为空原因分析
1.在调用android系统相册时,使用的是如下方式:     Intent intent = new Intent(Intent.ACTION_GET_CONTENT);             intent.addCategory(Intent.CATEGORY_OPENABLE);             intent.setType("image/");     startAc
android中setResult的调用时机
最近在做项目的过程中有需要用到返回值,但是由于需求比较复杂,感觉把setResult放到onStop中比较方便,但是发现在onStop中写入setResult(。。。)和finish()之后,跟本就不会回传值,后来又试了onPaulse和onDestroy均是不可以。 后来发现是因为错过了onActivityResult的调用时机,拿A跳转到B,B返结果给A作示例:因为在 B 退回 A过程中,首
【android学习笔记】startActivityForResult与setResult在Activity之间回传值的运用
【使用范围】页面间回传值 【场景】在Page1点击跳转页面Page2,在Page2获取到String传回Page1接收,常用在搜索页面,条件选择页面。 Page1点击跳转代码: Intent intent=new Intent(SearchActivity.this,ChoseClient.class); startActivityForResult(int...
Android 启动第三方应用的几种方法(整理)
最近要做一个打开第三方apk的功能,只给了一个apk,通过自己获取包名然后在实现;需求是如果第三方apk已经打开,则直接把界面显示出来,如果未打开,则启动。 首先获取bao包名,直接上代码; /** * 获取包名 * * @return */ public static String getPackagenameKemobilevideo() { String archive...
Android Intent传值反馈,向后传递,要求返回的传值
很简单 1. 传值跳转到第二个activityIntent intent=new Intent(MainActivity.this,TwoActivity.class); startActivityForResult(intent,1);2.在第二个activity接收 Intent intent = getIntent(); intent.putExtra("text", edit.
setResult()设置无效 -从源码讲解
我遇到的问题是Activity A 跳转到 Activity B, 一跳转到Activity B 就立马回调了Activity A中的onActivityResult 方法。查阅资料后,原来是我的Activity B 的启动模式设置的为singleTask。由于两个activity 不是同一个栈中,所以导致一跳转,立马就回调了onActivityResult方法。 ...
关于onActivitiyResult方法中data为空的bug
很简单的功能 第一个界面待返回值打开第二个界面,在第二个界面获取验证码,填入输入框,然后点击确定按钮,把输入的验证码返回到第一个界面,加上其他参数一块提交。 下面是代码1,待返回值启动的代码 2,openActivityForResult是封装的一个方法 3,第二个界面setResult 4,第一个界面回调onActivityResult 5,打印出来 data为空6,这是为什么呢
Android 必知必会 - 使用 Intent 打开第三方应用及验证可用性
本文主要记录: 使用 Intent 打开第三方应用或指定 Activity 的三种方式 使用上面三种方式时分别如何判断该 Intent 能否被解析 判断该 Intent 能否被解析中可能出现的遗漏
onActivityResult()得到的值为null可能的情况分析
1. 是否正确的调用了setResult()。 2. 是否是在Activity的finish()调用之前调用的setResult()。 3. 如果是按返回键返回的看是否自主消化掉了onBackPressed()函数,这个函数里调用了finish()函数,因此我们需要自主消化掉这个函数。既然如此,也别再复写的函数中调用super.onBackPressed()。 4. 是否使用的Intent.
Android开发 Intent传递参数,获取数据为null
android开发 Activity通过Intent传递参数,获取失败的原因 启动一个有返回值的activity (MapActivity) Intent intent = new Intent(UpdateDeveicesActivity.this, MapActivity.class); intent.putExtra("latitude", sensorModel.getLatitut...
如何在Android8.0系统下通过Intent安装apk
http://www.czhzero.com/2016/12/21/how-to-install-apk-on-Android7-0/   1、7.0系统使用FileProvider进行apk安装 Android系统升级到7.0之后,安全性提高了不少,过去我们通常是使用这样的代码进行apk的安装操作。 Intent intent = new Intent(Intent.ACTIO...
Android基础--调用系统相机,打开相册,展示到界面,出现的一些问题Uri为空,data为null,图片错乱问题
在开发中,我们一定会遇到调用系统相机,打开相册,裁剪图片并展示到界面,这里我给大家总结一下: 主要还是用代码来展示: 首先创建一个activity_main.xml文件:<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android
android 实现一个app启动另一个app的service服务
首先我们创建两个android 工程 这里我们称被启动的app为甲,启动被启动的app为已,首先我们在甲 app类中new一个Myservice类 在类的onCreate函数中我们写一个匿名线程public class MyService extends Service { private boolean Runing=false; private String Data=n
ActivityForResult 在不知道何时返回时,同过重写finish()方法setResult
假设界面A跳到界面B,若界面B需要手动触发才需要返回值,这时候只要setResult,然后finish()当前页面就可以了,但是如果界面B是个列表呢,一组数据需要处理,这时候我们只能在页面关闭的时候setResult 了,这个时候不用处理返回键,直接重写finish()就可以: package com.example.myapplication; import android.app.Act
Android 相机拍照后 ,Intent 返回 null问题 的 l对应方法
https://segmentfault.com/q/1010000003022495/a-1020000003023347 像上边文章里说的,定义一个全局的File ,拍照前手动创建文件,拍照后如果Intent data 不为空,就正常处理,否则 就拿着全局file的Uri做处理。
Notification通过Intent传递参数getIntent()为null的问题解决
想着通过Notification 发送一条通知 点击通知跳转到一个新的activity 在activity中得到Notification的id,从而能够cancel掉Notification。 但是在Notification发送时候,封装好了intent的数据。 当跳转到了 新的activity的时候,getIntent 什么都得不到。百度查询了好久都没有一个正解。 无奈
关于singleTask模式无法收到intent传值问题的解决
如果将activity的launchMode设置为singleTask,会发现收不到intent传递过来的值,这时候就需要使用到onNewIntent方法,在里面接收intent。 launchMode为singleTask的时候,通过Intent启到一个Activity,如果系统已经存在一个实例,系统就会将请求发送到这个实例上,但这个时候,系统就不会再调用通常情况下我们处理请求数据的onC
Android调用第三方app(Scheme隐式以及显示调用)
一、隐式调用 1.第三方app:manifest中配置能接受Scheme方式启动的 &amp;lt;activity android:name=&quot;.MainActivity&quot;&amp;gt;    &amp;lt;intent-filter&amp;gt;        &amp;lt;action android:name=&quot;android.intent.action.VIEW&quot; /&amp;gt;        &amp;lt;categor...
android 启动第三方应用的几种方法(整理)
android 启动第三方应用的几种方法(整理)
startactivityforresult的使用,和singleTask不能使用的问题
一、基本用法使用startActivityForResult开启页面的时候,当目标页面关闭的时候,可以回传数据给启动页面,比如ActivityA 使用startActivityForResult 启动ActivityB 则ActivityB关闭的时候,可以返回结果给ActivityA 其中 启动页面ActivityA用到的函数有: startActivityForResult(intent, r
Android通过putExtra()传递JavaBean对象,属性值为null问题的解决
前言:在页面Activity跳转时,通过intent.putExtra()传递数据,出现接收到的实体类对象属性为空的问题解决。一. 数据的组装跳转,传递一个序列化的实体对象。 // 组装数据,跳转页面 Intent intent = new Intent(); intent.setClass(getActivity(), MonitorActivity.class);
(备忘)Android app中调用启动其他应用(系统应用和第三方应用)
博主:十橙(原文链接) 一、打开第三方应用 方法一 Intent intent=new Intent(); //包名 包名+类名(全路径) intent.setClassName("com.linxcool", "com.linxcool.PlaneActivity"); startActivity(intent);
解决android调用系统相机拍照保存时onActivityResult中data为null的问题
调用系统相机照相的代码: boolean isNull=false;//判断照相机返回数据是否为空 Intent getImageByCamera = new Intent("android.media.action.IMAGE_CAPTURE"); File file = new File(Environment.getExternalStorageDirectory()
Intent博客源代码
intent startactivityforresult setResult intent
Android调用系统相机onActivityResult返回参数data为null
一般调用系统相机的代码: filePath = ImageUtil.getCacheFilePath(this, StaticValue.PHOTO_PROTOCOL_ENTRUST); File file = new File(filePath); Intent intentFromCapture = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
SetResult在覆写Finish方法时候要注意的地方
//返回数据到前一页面         public override void Finish()         {             var dataIntent = new Intent();             dataIntent.PutExtra(SettingString.PushStartTime, starTimeStr);             dataI
Android bind其他或第三方APK Service方法
有时候我们会使用其他模块Service接口,这里介绍一个Bind其他APK service的方法。 假设A要bind B的Service,这里B我们假设是“com.android.music.MediaPlaybackService”. 1.检查B的Service是否允许其他模块引用 --打开B的Manifest,只有带有android:exported=&quot;true&quot;属性才可以: &amp;lt;...
android 提示“无法返回该图片”有些机型比如:sony 手机resultCode = 0或者照相、相册裁剪时候onActivityResult的Intent返回null
这个弄了一下的时间糊里糊涂解决的。 问题就是不管怎么调用相册还是相机都是返回 “无法返回该图片”,debug到startActivityForResult都有数据,但在onActivityResult接收数据的时候resultCode = 0了,,本该返回-1怎么就变成0了,,一直想不明白,,现在也是不明不白的。 直接看博客  4.4系统,拍照-裁剪,resultCode返回0 解决and...
Android 调用第三方 APP
本文导读 如果想要在 App 1 中调用 App 2 的 Activity1,则操作流程如下: 1)首先被调用的 App 2 中要声明 Activity1 是可以被启动的 或者 Activity 是对外可见的 1.1、声明 Activity1 可以被启动,只需在 AndroidManifest.xml 文件中声明为程序入口即可:         &amp;lt;activity android:n...
android接入第三方apk的解决方法
在实际的项目开发中经常会碰到想把第三方的apk程序直接集成进我们自己的应用中这样的情况。如果是自己编写的两个应用,那么因为已经知道了这两个应用的包名,所以我们很容易就能控制这两个程序之间的跳转问题。现在的问题是,其中的一个应用我们只有其apk。解决的思路其实一样,可以想办法获取到它的包名,这样就可以用同样的方法进行跳转。分以下几种情况进行讨论一、该应用已经安装这里介绍两种方法:1、枚举所有安装的应用
android通过包名跳转到第三方应用
import java.util.List; /**  * Created by liujie on 2017/7/20.  */ public class JumpApplictionUtil {     private  JumpApplictionUtil(){     }     public static void doStartApplicationWithPackageNam...
Android实战技巧之二十八:启动另一个App/apk中的Activity
Android提供了在一个App中启动另一个App中的Activity的能力,这使我们的程序很容易就可以调用其他程序的功能,从而就丰富了我们App的功能。比如在微信中发送一个位置信息,对方可以点击这个位置信息启动腾讯地图并导航。这个场景在现实中作用很大,尤其是朋友在陌生的环境找不到对方时,这个功能简直就是救星。本来想把本文的名字叫启动另一个进程中的Activity,觉得这样才有逼格。因为每个App都
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 北京培训完大数据回来 ios视频开发第三方