结束时requestCode将归还在onActivityResult()中。...中,一般为RESULT_CANCELED , RESULT_OK该值默认为-1。...,结果码用于标识返回数据来自哪个新Activity */ @Override protected void onActivityResult(int requestCode,...,上面代码中使用到的RESULT_OK是系统Activity类定义的一个常量,值为-1,代码片断如下: public class android.app.Activity extends ……{...我们一般使用setResult(RESULT_OK, intent);将我们的返回码设置为RESULT_OK = -1,这样可以避免无用的判断 注意:在Fragment中使用startActivityForResult
} else { Toast.makeText(this, "您已拒绝权限,请在设置手动打开权限...; dialog.setMessage("这个权限关系到发送短信,如拒绝需要在设置手动打开!")...结果代码将是Activity.RESULT_OK对于成功,或其中的一个错误:RESULT_ERROR_GENERIC_FAILURERESULT_ERROR_RADIO_OFFRESULT_ERROR_NULL_PDU...如果SentIntent为NULL,调用者将根据所有未知的应用程序进行检查,这将导致在检查期间发送较少数量的SMS。...Intent intent = new Intent(); intent.putExtra("phone", phone); // 把结果返回给调用者
如果活动显式返回,则不会返回任何结果,或者在操作期间崩溃,resultCode将为RESULT_CANCELED。 当您的活动重新启动时,您将在onResume()之前立即收到此调用。...如果您的活动将noHistory设置为true,则永远不会调用此方法。...resultCode int:子活动通过其setResult()返回的整数结果代码。...data Intent:一个Intent,它可以将结果数据返回给调用者(各种数据可以附加到Intent“extras”)。...URL必须是绝对的,也就是说,它必须始终指定方案。根据其方案解析URL字符串。始终为URL建立流处理程序,实际上,如果没有可用的处理程序的方案,无法为其创建URL实例。
Activity并且在它退出的时候收到一个返回结果。...比如,你可以调用系统相机在你的应用中,拍了一张照片,然后返回到你的Activity,这个时候就可以通过这种方法把照片作为结果返回给你的Activity。...Integer的变量作为启动参数,当启动的那个Activity退出时这个参数会被作为回调函数的一个参数,用来区分返回结果,也就是说你启动Activity时传递的参数(requestCode)和返回结果时的那个参数...Intent: 上面介绍了怎么在onActivityResult()中处理Intent,但是怎么在你的应用中设置这个返回Intent呢?...如果你想给调用你的Activity返回一个结果可以通过调用setResult()设置返回内容,然后结束这个Activity。
要实现的功能如下: 从Activity A将数据传到Activity B,再从Activity B中获取数据后,再传回Activity A。...,Activity A就会有一个等待Activity B的返回。...具体步骤如下: 在Activity A中有一个Button,点击Button后,获取要传到Activity B的数据,将数据封装到Bundle中,再调用startActivityForResult将数据传到...通过setResult返回的,常用的取值有2个:RESULT_CANCELED、RESULT_OK RESULT_CANCELED:Activity B拉起失败,比如crash RESULT_OK:Activity...RESULT_FIRST_USER, result); } (3)PackageInstaller下面的UninstallerActivity.java(卸载apk的相关页面):在onCreate方法里面有多处设置为
第二个参数是一个Lambda表达式,当有结果返回时则会回调到这里,然后我们在这里获取并处理数据即可。...我想了一下,刚才在编写两个Activity之间交换数据的时候,我们需要显示地启动SecondActivity,并手动将SecondActivity返回的数据从Intent中解析出来,这就稍微有些麻烦。...然后在createIntent()方法中,我们手动创建了一个Intent,并将它的用途设置为打开SecondActivity。...最后在parseResult()方法中,我们对SecondActivity返回的结果进行解析,并将解析出来的字符串作为输出参数返回。...另外,我们也不需要再去手动解析SecondActivity返回的数据,lambda表达式上的参数就是解析出来的结果了。
startActivityForResult和活动的launchMode Activity_A启动Activity_B后,需要Activity_B在完成操作后返回的一些数据: //Activity_A中...) { //成功返回结果了 } } 上面是典型的代码片段,需要注意的是:对于对应的目标Activity启动模式(在manifest中)指定为singleTask和singleInstance...的Activity,使用startActivityForResult后,当前Activity的onActivityResult会立即执行,其resultCode为RESULT_CANCEL,并且data...为null....所以,只有standard和singleTop这样的启动模式的Activity,使用startActivityForResult打开它们才可以有效的返回数据给上一个Activity,如果遇到这样的需求,
6.4.2.带有返回值的跳转 在某些时候,从跳转的对象返回时,跳转源头需要得到其返回的结果,这样两个屏幕才可实现一些交互。...初始化界面如图所示,点击“Get Result”按钮将跳转到第二个屏幕,如中图所示;在第二个屏幕中点击“Corky”和“Violet”按钮将返回第一个屏幕,并获得对应显示,如右图所示。...GET_CODE 为请求代码,这样可以获得目标活动的返回信息。...; finish(); } }; 被跳转的目标程序将返回值返回,这里使用的依然是 Intent 作为交互的信息,通过 setAction()设置不同的活动...返回的信息通过扩展 Activity 的 onActivityResult()函数来实现,两个整数类型的参数 requestCode 和 resultCode分别代表请求代码和结果码,第三个参数 Intent
6.4.2.带有返回值的跳转 在某些时候,从跳转的对象返回时,跳转源头需要得到其返回的结果,这样两个屏幕才可实现一些交互。...初始化界面如图所示,点击“Get Result”按钮将跳转到第二个屏幕,如中图所示;在第二个屏幕中点击“Corky”和“Violet”按钮将返回第一个屏幕,并获得对应显示,如右图所示。...GET_CODE 为请求代码,这样可以获得目标活动的返回信息。...; finish(); } }; 被跳转的目标程序将返回值返回,这里使用的依然是 Intent 作为交互的信息,通过 setAction()设置不同的活动。...返回的信息通过扩展 Activity 的 onActivityResult()函数来实现,两个整数类型的参数 requestCode 和 resultCode分别代表请求代码和结果码,第三个参数 Intent
grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); // 将结果转发给.../** * 返回Activity结果 * * @param requestCode 请求码 * @param resultCode 结果码 * @param...//显示图片 Glide.with(this).load(imageUri).into(ivPicture); } } 这里加了一个判断用于检测是否为打开相册之后的返回与返回是否成功...RESULT_OK是Activity中自带的。 然后在获取数据时判空处理一下再赋值给一个Uri变量,然后通过Glide框架加载这个Url显示在刚才的ivPicture上。...运行一下: 可以看到系统的剪裁并不是很彻底,gif中虽然演示的剪裁时是一个圆形,但实际上剪裁的是一个正方形的,这其实和Android系统版本及设置的参数有关系。
grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); // 将结果转发给.../** * 返回Activity结果 * * @param requestCode 请求码 * @param resultCode 结果码 * @param...//显示图片 Glide.with(this).load(imageUri).into(ivPicture); } } 这里加了一个判断用于检测是否为打开相册之后的返回与返回是否成功...RESULT_OK是Activity中自带的。 然后在获取数据时判空处理一下再赋值给一个Uri变量,然后通过Glide框架加载这个Url显示在刚才的ivPicture上。...可以看到系统的剪裁并不是很彻底,gif中虽然演示的剪裁时是一个圆形,但实际上剪裁的是一个正方形的,这其实和Android系统版本及设置的参数有关系。
requestCode 和 resultCode都是返回提出请求的MainActivity结果处理函数onActivityResult()使用的标识,其中requestCode 是我们在启动活动时传入的请求码...,用来标识MainActivity跳转的目的Activity,而resultCode则是在返回数据时传入的处理结果 Intent intent = new Intent(本窗体.this, 跳转的目的窗体...结束时requestCode将归还在onActivityResult()中。...将归还在onActivityResult()中,一般为RESULT_CANCELED , RESULT_OK。...Activity返回的。
startActivityForResult用法 startActivityForResult主要用来从FirstActivity跳转到SecondActivity然后返回FirstActivity并且获取从...NewMapActivity.class); intent.putExtra("address",position); startActivityForResult(intent,3); 当请求码为3...且结果码为RESULT_OK时,获取从NewMapActivity传过来的position值 @Override protected void onActivityResult(int requestCode...NewMapActivity: 获取从ClockManagerActivity传过来的address值 String position = getIntent().getStringExtra("address"); 设置...resultCode码,传递position参数,关闭当前Activity Intent intent = getIntent(); String s = addressInfo.addressName
编辑这个字符串 编辑完成后点击保存将结果返回到第一个Activity 第一个Activity展示修改后的字符串 如下图: 这是一个非常简单和常见的场景,我们一般通过 startActivityForResult...的方式传递参数,并在 onActivityResult 接收编辑后的结果,代码也很简单,如下: //第一个Activity启动编辑Activity btnEditByTradition.setOnClickListener...我们期望的是: 一个对外提供某些功能的Activity应该有足够的封装性,调用者像调用普通方法一样,一行代码即可完成调用 方法的参数列表就是调用本服务需要传递的参数(参数数量,参数类型,是否必须) 方法的返回参数就是本服务的返回结果...看如下代码: /** * 对指定的文本进行编辑 * @param content 要编辑的文本 * * @return 可空 不为null 表示编辑后的内容 为null表示用户取消了编辑...") } /** * 解析目标Activity返回的结果,有具体实现者解析,并回传 * * 使用者必须实现这个lambda,否则直接抛出一个异常 */ var resultParser
被启动的组件结束时,需要将数据返回给调用者,通过Activity.startActivityForResult启动Activity public void startActivityForResult...(Intent intent, int requestCode) •参数intent为启动Activity的意图描述 •参数requestCode为请求码,用于在回调时识别回调者...通过Activity.setResult设置返回信息 public void setResult (int resultCode, Intent data) •参数...resultCode为返回结果的结果编码,用于标识结果类型 •参数data为返回的数据 接收数据返回 启动者的启动调用示例 startActivityForResult...被启动者设置回调结果示例 Bundle bundle = new Bundle(); bundle.putString(“someresult”, “somevalue
3) 将导出属性明确设置为false。 4) 仔细和安全地处理收到的意图,即使意图从相同的应用发送。 5) 敏感信息可以发送,因为它发送和接收所有同一应用中的信息。...要点(创建活动): 1) 将导出属性显式设置为true。 2) 小心并安全地处理接收到的意图。 3) 返回结果时,请勿包含敏感信息。 下面展示了创建公共活动的示例代码。...5) 收到结果时,请仔细并安全地处理数据。...3) 不要定义意图过滤器,并将导出属性明确设置为`true`。 4) 通过预定义白名单验证请求应用程序的证书。 5) 尽管意图是从伙伴应用程序发送的,仔细和安全地处理接收到的意图。...7) 尽管意图是从内部应用发送的,仔细和安全地处理接收到的意图。 8) 由于请求的应用是内部的,因此可以返回敏感信息。
但是,在本手册中,禁止将导出属性设置为未指定。...由于这个漏洞,可能会将敏感信息发送到其他应用,或者应用可能会收到意外的返回值。 如上所示,使用意图过滤器,将隐式意图发送到私有应用,可能会导致意外行为,因此最好避免此设置。...虽然可以将整个证书存储在白名单中,但为了使文件大小最小,仅存储 SHA-256 散列值就足够了。...singleInstance 与singleTask相同,但以下几点不同。 只有根活动可以属于新生成的任务。 因此,通过此模式启动的活动实例,始终是根活动。...android:label="@string/app_name" android:exported="false" /> 私有活动仅仅将结果返回个收到的意图
4.1.2.1 仅在应用内部使用的活动必须设置为私有(必需) 仅在单个应用中使用的活动,不需要能够从其他应用接收任何意图。...开发人员经常假设,应该是私有的活动不会受到攻击,但有必要将这些活动显式设置为私有,以阻止恶意内容被收到。 AndroidManifest.xml 设置为"standard"。 在"standard"设置中,新实例总是在启动活动时创建,任务遵循属于调用活动的任务,并且不可能创建新任务。...4.1.2.7 返回结果时,请注意目标应用产生的可能的信息泄露(必需) 当您使用setResult()返回数据时,目标应用的可靠性将取决于Activity类型。...数据,您始终需要对接收到的数据执行输入验证。
--设置返回键TextView为高度50dp,宽度为50dp;id为android:id="@+id/tv_back"--> RESULT_OK为Activity系统常量,状态码为-1, //表示此页面下的内容操作成功将data返回到上一页面,如果是用back返回过去的则不存在用setResult传递data..., data); //RESULT_OK为Activity系统常量,状态码为-1, //表示此页面下的内容操作成功将data...为Activity系统常量,状态码为-1 // 表示此页面下的内容操作成功将data返回到上一页面,如果是用back返回过去的则不存在用setResult传递data...为Activity系统常量,状态码为-1 // 表示此页面下的内容操作成功将data返回到上一页面,如果是用back返回过去的则不存在用setResult传递data
领取专属 10元无门槛券
手把手带您无忧上云