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

当activity重启时,如何将意图附加传递给onactivityresult?

当activity重启时,可以通过保存意图的数据,并在onActivityResult方法中重新获取并处理。

具体步骤如下:

  1. 在activity的onSaveInstanceState方法中保存意图的数据。可以使用Bundle对象来保存数据,将意图作为Bundle的一部分进行保存。例如:
代码语言:java
复制
@Override
protected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    outState.putParcelable("intent_key", getIntent());
}
  1. 在activity的onCreate方法中获取保存的意图数据。首先判断savedInstanceState是否为空,如果不为空,则从savedInstanceState中获取意图。例如:
代码语言:java
复制
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (savedInstanceState != null) {
        Intent intent = savedInstanceState.getParcelable("intent_key");
        // 处理意图
        // ...
    }
    // 其他初始化操作
    // ...
}
  1. 在需要重新传递意图的地方,使用startActivityForResult方法启动另一个activity,并传递意图。例如:
代码语言:java
复制
Intent intent = new Intent(this, AnotherActivity.class);
// 设置意图附加数据
// ...
startActivityForResult(intent, requestCode);
  1. 在另一个activity中,通过setResult方法设置结果,并在finish方法中结束当前activity。例如:
代码语言:java
复制
Intent resultIntent = new Intent();
// 设置结果数据
// ...
setResult(resultCode, resultIntent);
finish();
  1. 在原始的activity中,重写onActivityResult方法,获取返回的结果数据。例如:
代码语言:java
复制
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == requestCode && resultCode == resultCode) {
        // 处理返回的结果数据
        // ...
    }
}

这样,当activity重启时,可以将意图附加传递给onActivityResult方法,实现数据的传递和处理。

推荐的腾讯云相关产品:腾讯云移动应用分析(MTA),腾讯云移动推送(TPNS)。

腾讯云移动应用分析(MTA)是一款专业的移动应用数据分析产品,可以帮助开发者深入了解用户行为、应用性能等关键指标,提供全面的数据分析和报表展示功能。了解更多信息,请访问:腾讯云移动应用分析(MTA)

腾讯云移动推送(TPNS)是一款高效、稳定的移动消息推送服务,支持Android、iOS等多个平台,提供消息推送、用户标签管理、消息统计等功能。了解更多信息,请访问:腾讯云移动推送(TPNS)

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

相关·内容

Android onActivityResult获取返回值的用法

现有 MainActivity,它进入到 SecondActivity 后,在 SecondActivity 中进行了某些操作然后需要将值返回给 MainActivity ,就需要用到 onActivityResult...显式意图通常主要是启动本应用中的Activity之间的数据,而隐式意图则常见于启动系统中的某些特定的动作,比如打电话,或者是跨应用的Activity启动。...一般来说: 显式意图:调用 Intent.setComponent() 或 Intent.setClass() 方法明确指定了组件名的 Intent 为显式意图,显式意图明确指定了 Intent 应该传递给哪个组件...MainActivity里面的主要代码 (1)需要返回值,那么在启动另一个Activity要用到startActivityForResult(intent, REQUEST_CODE); 注意第二个参数是请求的...int类型的值,这个值要在onActivityResult()方法中和requestCode做判断的,由此来判断是启动的某个Activity

1.3K30

android学习笔记----隐式意图和显式意图

隐式意图和显式意图: 显式意图:显式意图明确指明了启动活动的上下文和想要启动的目标活动,显式意图明确指定了Intent应该传递给哪个组件。 隐式意图:没有明确指定组件名的Intent为隐式意图。..."/> 使用意图在第二个activity数据给第一个activity 实验要求:编程实现具有“登录”按钮的主界面,点击“登录”按钮后打开另一个新的Activity,在新打开的...参数 intent Intent:开始的意图。 requestCode int:如果>=0,则活动退出,此代码将在onActivityResult()中返回。...关于意图的小Demo Demo地址:https://github.com/liuchenyang0515/shiyan4_1 实验要求: 根据要求的界面,实现以下功能: (a) 点击“添加数据”按钮...的消息提示框,然后清空界面上已输入的数据,并准备接受下一次的输入; (b) 点击“全部显示”按钮,界面跳转到下一个界面(第二个Activity),这该界面中显示前面已多次输入的“姓名、年龄和身高”的数据

1.3K10
  • 笔记40 | Android通讯之Intent的简单使用

    隐式Intent打开Activity Intent打开网页 打电话 发短信 发邮件 显示地图与路径规划 播放多媒体 拍照 使用Intent传输数据和使用onActivityResult接收返回的值 -...--- 概念 Intent的中文意思是“意图,意向”,在Android中提供了Intent机制来协助应用间的交互与通讯,也是连接四大组件的枢纽,Intent负责对应用中一次操作的动 作、动作涉及数据、附加数据进行描述...,Android则根据此Intent的描述,负责找到对应的组件,将 Intent传递给调用的组件,并完成组件的调用。...---- 显示Intent打开Activity //显式意图打开Activity Intent intent = new Intent(MainActivity.this,OtherActivity.class...(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode

    82270

    Android Activity之间的数据传递【转载】

    ,返回设置的默认值 int age=intent.getIntExtra("age",0); ---- 在目标Activity【Main2Acitivity】销毁,想让它可以回数据给上一个Activity...不管多早调用这句代码,这句代码在当前Activity销毁才会执行,即此Activity销毁才会回数据。请求码和结果码不必相同。...Activity使用 startActivityForResult() 开启目标Activity后,目标Activity销毁,会向上一级Activity数据,并回调上一级 Activity...我们需要重写上一级ActivityonActivityResult() 方法获取回数据。...开启了多个目标Activity,回数据都是回调onActivityResult()方法,所以常常要根据结果码区分是哪个目标Activity的数据。

    1K20

    Android Intent漏洞

    Intent().setData(Uri.parse("file:///data/data/com.victim/databases/credentials"))); finish(); } 打开受害者应用选择点击攻击者应用时...ps:上面是我的理解,不知道对不对 访问任意组件 由于 Intent 是 Parcelable,因此属于此类的对象可以作为额外数据传递给另一个 Intent。...这可用于创建一个代理组件(活动、广播接收器或服务),该组件采用嵌入式意图并将其传递给危险方法,如startActivity()或 sendBroadcast()因此,可以强制应用启动无法直接从其他应用启动的未导出组件...就其本身而言,启动隐藏组件不会产生太大的安全影响,并且需要滥用隐藏组件的功能: 旁路保护 开发人员可以实现对收到的意图的过滤和显式设置组件以处理意图 为null: intent.setComponent...com.victim.AuthWebViewActivity")); intent.putExtra("url", "http://attacker-website.com/"); 尝试查找可以处理 Intent 的实体(而不是 Intent 的主要内容)

    56130

    四大组件的纽带——Intent

    前面学习Activity己经多次使用了 Intent,一个Activity需要启动另一个Activity, 程序并没有直接告诉系统要启动哪个Activity,而是通过Intent来表达自己的意图...在 ActivityonActivityResult() 回调中,Activity 将结果作为单独的 Intent 对象接收。 2....在程序中,如果需要在本应用中启动其他的Activity,可以使用显式意图来启动Activity,其本例代码具体如下: // 创建Intent对象 Intent intent = new Intent...使用这种方式开启的Activity意图非常明显,因此称之为显式Intent,也叫做显式意图。 02隐式Intent 没有明确指定组件名的Intent称为隐式Intent,又叫隐式意图。...隐式 Intent启动Activity的示意图如下图所示。 ? 在上图中,Activity A 创建包含操作描述的 Intent,并将其传递给 startActivity()。

    1K50

    我所理解的Intent 和Intent-filter

    ActivityonActivityResult() 回调中, Activity 将结果作为单独的 Intent 对象接收。... Activity 启动,它将检查 Intent 并根据 Intent 中的信息决定具体的行为(例如,是否显示编辑器控件)。...a).intent的使用者,发起一个意图之前会在intent中添加用于响应者用于匹配的信息,包括: 这三个中的一个或者更多; b).假设有个应用的组件...(可能是与Intent使用者在同一个应用内,也可能不再同一应用内),刚好声明了和intent使用者一样的 c).Intent使用者发起意图的时候,..." /> 按钮被点击的时候FirstActivity就会发起意图,系统会匹配到SecondActivity(当然是使用intent-filter中的信息、、),看一看效果

    1.3K90

    《Android》Lesson06-Intent2

    - 博客频道 - CSDN.NET 在一个主界面(主Activity)上能连接往许多不同子功能模块(子Activity上去),子模块的事情做完之后就回到主界面,或许还同时返回一些子模块完成的数据交给主...requestCode 和 resultCode都是返回提出请求的MainActivity结果处理函数onActivityResult()使用的标识,其中requestCode 是我们在启动活动传入的请求码...结束requestCode将归还在onActivityResult()中。...以便确定返回的数据是从哪个Activity中返回 代码写在旧窗体,在旧窗体里new 2个Intent(目的窗体是2个不同的新窗体),requestCode用来区分是向哪个新窗体消息,离开旧窗体切换到新窗体消息显示在新窗体中...setResult(int resultCode, Intent data) 调用这个方法把Activity想要返回的数据返回到父Activity 第一个参数:Activity结束resultCode

    68960

    安卓基础干货(六):安卓Activity的学习

    隐式意图和显式意图(重点) 隐式意图:开启activity的时候不需要直接指定activity的名称,通过指定一组动作和数据,让系统来找到这个特定的activity。...(); 4、重写onActivityResult方法接收返回的数据: 代码: /** * requestCode 开启activity设置的请求吗 * resultCode 在目标activity中设置的结果码...代码: /** * requestCode 开启activity设置的请求吗 * resultCode 在目标activity中设置的结果码 * data 第二个界面返回的数据 */ @Override...onStart:界面可见的时候调用 onResume 按钮可以被点击的时候 onPause 按钮失去焦点的时候: onStop 界面不可见的时候调用: onDestroy 销毁activity...应用场景:浏览器的书签 singletask和singleinstance启动模式 singetask 单一任务栈,在当前任务栈里面只能有一个实例存在 开启activity的时候,就去检查在任务栈里面是否有实例已经存在

    2.9K10

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

    2、Fragment生命周期 Fragment比Activity多了几个生命周期的回调方法 onAttach(): 该Fragment被添加到Activity被回调,该方法只会被调用一次。...onActivityCreated(): Fragment所在的Activity被启动完成后回调该方法。 onDestroyView(): 销毁该Fragment所包含的View组件时调用。...是接收不到回调,而是回调 ActivityonActivityResult。...正确的应该是直接使用 startActivityForResult()方法 requestCode 请勿-1 7、数据保存和恢复 和Activity类似,Fragment也有onSaveInstanceState...显示之前隐藏的Fragment detach() 会将view从UI中移除,和remove()不同,此时fragment的状态依然由FragmentManager维护 attach() 重建view视图,附加

    1.4K10

    Android 蓝牙4.0代码解析

    )上能连接往许多不同子功能模块(子Activity上去),子模块的事情做完之后就回到主界面,或许还同时返回一些子模块完成的数据交给主Activity处理。...结束requestCode将归还在onActivityResult()中。...以便确定返回的数据是从哪个Activity中返回 代码写在旧窗体,在旧窗体里new 2个Intent(目的窗体2个不同的新窗体),requestCode用来区分是向哪个新窗体消息,离开旧窗体切换到新窗体消息显示在新窗体中...setResult(int resultCode, Intent data) 调用这个方法把Activity想要返回的数据返回到父Activity 第一个参数:Activity结束resultCode...调用bindService方法后就会回调Activity的onServiceConnected,在这个方法中会向Activity中传递一个IBinder的实例,Acitity需要保存这个实例。

    1.1K50

    安卓的四大组件之Activity-活动

    但是系统内存不足,调用onPause和onStop方法后,activity的实例可能会被系统摧毁,此时内存中就不会有activity的实例存在了。...onSaveInstanceState方法接收一个Bundle类型的参数,开发者可以将状态数据存储到这个Bundle对象中,这样即使activity被系统回收了,但是用户重启这个activity而调用它的...onCreate方法的时候,上面的Bundle对象会作为实际参数传递给onCreate方法,开发者可以从Bundle对象取出保存的数据,然后利用这些数据将activity回复到被摧毁之前的状态。...6、如何将Activity设置成窗口的样子?...StartActivityForResult来开启,这样被开启的Acitivity销毁的时候就会调用前一个ActivityonActivityResult方法,那么我们就可以在这个方法里面finish

    83050

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

    在目标Activity中可以通过setResult()方法设置返回结果,在源Activity中通过onActivityResult()方法接收返回结果。...onActivityResult():用于接收其他Activity返回的结果,通过Intent对象获取返回的数据。...重启阶段(可选): onRestart():已停止的Activity再次启动时调用,此方法在Activity从后台重新回到前台时调用。...需要注意的是,系统资源不足或内存紧张,可能会触发Activity的销毁和重建,这时会调用相应的生命周期方法。..., resultIntent); finish(); SingleTop模式: 要启动的Activity已经位于任务栈栈顶,会复用该Activity实例,调用其onNewIntent()方法传递新的启动意图

    21110

    (转载非原创)Android系统编程入门系列之界面Activity交互响应

    把视图View作为用户的操作对象,仍然可以重写上述界面响应的三个方法,但是系统视图往往也封装了一层更加简单粗暴的响应方法。...那么,如果用户将手指触摸到屏幕上,会触发按下行为,该行为作为事件首先传递到根视图中,之后根视图再将该事件传递给子视图,子视图再将该事件传递给子视图的子视图,这样按照加载的嵌套顺序一层层传递事件,称之为事件分发...或者startActivityForResult(Intent intent, int requestCode)在启动传入一个唯一值作为参数二,以区分启动不同界面的意图,在启动的界面Activity返回后...,系统会调用当前界面Activity中的onActivityResult(int requestCode, int resultCode, Intent data)方法,因此可以重写该方法。...而启动界面Activity在被用户操作返回,系统将回调该启动界面的onBackPressed()方法,之后将该Activity从栈中移出并销毁。

    41600
    领券