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

当我旋转屏幕时,我从活动中发送到Fragment的捆绑包仍然是活动的。为什么?

当旋转屏幕时,Android系统会销毁当前的活动(Activity)并重新创建一个新的活动实例。这是因为屏幕旋转会导致布局的改变,需要重新加载适配新方向的布局资源。

在活动销毁和重新创建的过程中,系统会调用活动的生命周期方法,包括onSaveInstanceState()和onCreate()。在onSaveInstanceState()方法中,系统会将活动的状态信息保存到一个Bundle对象中,然后在新的活动实例创建时,将这个Bundle对象传递给新的活动实例的onCreate()方法。

Fragment是活动的一部分,当活动销毁和重新创建时,Fragment也会随之销毁和重新创建。但是,通过将Bundle对象传递给Fragment的setArguments()方法,可以将活动的状态信息传递给Fragment。这样,在Fragment的onCreate()方法中可以通过getArguments()方法获取到这个Bundle对象,并恢复活动的状态信息。

因此,当旋转屏幕时,从活动中发送到Fragment的捆绑包仍然是活动的,是因为系统在活动销毁和重新创建的过程中,通过Bundle对象将活动的状态信息传递给了重新创建的Fragment。

这种机制可以用于在屏幕旋转等情况下保持数据的一致性,使得用户在切换屏幕方向时不会丢失已输入或处理的数据。

在腾讯云的云计算平台中,可以使用腾讯云的移动开发服务(Mobile Development Service)来构建移动应用程序。该服务提供了丰富的功能和工具,包括移动应用开发框架、云存储、推送服务、移动分析等,可以帮助开发者快速构建高质量的移动应用。

腾讯云移动开发服务的产品介绍链接地址:https://cloud.tencent.com/product/mds

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

相关·内容

已中招!Android 基础面试常常吊死在这几个问题上……

10、面试官:当旋转屏幕,Activity如何响应? 11、面试官:你是如何做到旋转屏幕防止数据重新加载和重置? 12、面试官:说一下AsyncTasks和线程他们区别!...面试官:给你讲讲吧,你去别的公司面试你,你可以这样回答: OnCreate():这是第一次创建视图。通常,这是我们创建视图,中获取数据等地方。...如果我们以启动模式为 “ singleInstance” 再次启动 ActivityB ,则新活动堆栈将为: 任务1 :A->B-> C 任务2 :D 10、面试官:当旋转屏幕,Activity如何响应...应聘者:旋转屏幕,当前 Activity 实例将被破坏,并以新方向创建Activity新实例。旋转屏幕,由于屏幕旋转时会重新创建布局,将首先调用onCreate() 方法。...第三波 11、面试官:你是如何做到旋转屏幕防止数据重新加载和重置

2K20

【译】LiveData with Coroutines and Flow

这个系列做了协程和Flow开发者一系列文章翻译,旨在了解当前协程、Flow、LiveData这样设计原因,设计者角度,发现他们问题,以及如何解决这些问题,pls enjoy it。...这意味着没有中断,也不需要在重新创建视图进行清理。 撇开命名不谈,有两种机制可以将数据ViewModel/Presenter发送到View。 拥有对视图引用并直接调用它。...Fragment scopes,每个屏幕有多个 Fragment ViewModel作用域,每屏一个 Main Activity scopes Main Activity ViewModel scope...(不知道你为什么要使用不可取消版本,但请在评论中告诉!)...当我们有一个新Value,我们调用offer方法 当我们想停止发送更新,我们调用close(cause?)

1.4K10
  • 截图和录屏工具,有它就够了

    QQ截图截好后可以直接发送到微信或QQ好友。但是,它并不是那么方便。每次截图都需要登录QQ才能截图,截图后编辑也没有那么多功能,而且如果需要保存到本地,需要粘贴至QQ或word,再复制出来。...它有如下功能:捕捉活动窗口、捕捉窗口/对象、捕捉某个区域、捕捉手绘区域、捕捉整个屏幕、捕捉滚动窗口(长截图)、捕捉固定区域。此外,它还支持录屏等其他功能。不需要安装,下载打开直接使用,简单方便快捷。...比如添加注释、文字、缩放、裁切、旋转、加文字等轻量级操作。 ? ? 3.屏幕录制机 录屏功能大家时不时会用到,比如演示某个操作。而我们没必要为此下载多余软件,有它就够了。...它支持录制屏幕动作、矩形窗口、活动窗口或全屏高清录制。 ? 4.取色器 这个功能网上应该不少,也是比较常用功能。比如,你在网上或看到某张图颜色好看,想取下来,这个应该是最好用了。...5.放大镜 这是一个不错功能。当我们需要特别精确控制尺寸或页面定位,有时为了几个像素或厘米之间微小差距,我们只需打开这个软件就可以轻松完成操作。

    1.7K20

    Dropbox 是如何解决 Android App 内存泄漏问题

    常见例子 引用长期运行服务 image.png Fragment 引用了一个活动,而该活动引用一个长期运行服务 在这种情况下,我们有一个标准设置,活动持有一个长期运行服务引用,然后是 Fragment...例如,假设活动以某种方式创建了对其子 Fragment 引用。然后,只要活动还在,Fragment 也会继续存在。...下一次,我们安装和运行我们应用时,LeakCanary 将与它一起运行。当我们在应用中导航,LeakCanary 会偶尔暂停以转储内存,并提供检测到泄漏痕迹。 这个工具比我们之前方法要好得多。...但是这个过程仍然是手动,每个开发人员只有他们个人遇到内存泄漏本地副本。我们可以做得更好!...取而代之,让我们回顾一下自己经常要处理两类内存泄漏。

    95030

    Dropbox 如何解决 Android App 内存泄漏问题?

    常见例子 引用长期运行服务 Fragment 引用了一个活动,而该活动引用一个长期运行服务 在这种情况下,我们有一个标准设置,活动持有一个长期运行服务引用,然后是 Fragment 及其视图持有活动引用...例如,假设活动以某种方式创建了对其子 Fragment 引用。然后,只要活动还在,Fragment 也会继续存在。...下一次,我们安装和运行我们应用时,LeakCanary 将与它一起运行。当我们在应用中导航,LeakCanary 会偶尔暂停以转储内存,并提供检测到泄漏痕迹。 这个工具比我们之前方法要好得多。...但是这个过程仍然是手动,每个开发人员只有他们个人遇到内存泄漏本地副本。我们可以做得更好!...取而代之,让我们回顾一下自己经常要处理两类内存泄漏。

    1.1K10

    Appium+python自动化(十四)- 与Capability完美懈垢之解读(超详解)

    这部分就是对Capability配置。那么今天给小伙伴们分享、介绍和讲解一下Capability。让你知道她来龙去脉,知道为什么代码里那么写。...在Android上,这个功能目前被忽略,尽管它仍然是必需。...能力 描述 值 appActivity 要从中启动Android活动活动名称。这往往需要在一个....被忽略元素是不可能找到,这就是为什么这个功能也被实现为可切换设置以及功能。...3.3 ios独有Capability   在选择appium,最主要是因为他能够同时支持ios和android,在基础参数配置中ios也有他自己独一份,不和android一样,下面我们大概介绍一下

    3.3K50

    ViewModel再问—字节真题

    为什么旋转屏幕后不会丢失状态? 为什么ViewModel可以跟随Activity/Fragment生命周期而又不会造成内存泄漏呢? ViewModelScope了解吗?...为什么旋转屏幕后不会丢失状态?为什么ViewModel可以跟随Activity/Fragment生命周期而又不会造成内存泄漏呢?...就可以用来管理这个容器,只要Activity处于活动状态,HolderFragment也就不会被销毁,就保证了ViewModel生命周期。...而且设置setRetainInstance(true)方法可以保证configchange生命周期不被改变,让这个Fragment在Activity重建存活下来。...所以,到这里,第三个问题应该也可以回答了,2.0之前呢,都是通过他们创建了一个空fragment,然后跟随这个fragment生命周期。

    1.8K20

    安卓-碎片使用入门

    第四章-Android开发中碎片 4.1 碎片是什么 碎片(Fragment)是一种可以嵌入在活动当中UI片段,它能让程序更加合理和充分地利用大屏幕空间,因而在平板上应用得非常广泛。...你甚至可以将碎片理解成一个迷你型活动,虽然这个迷你型活动有可能和普通活动是一样大。  那么究竟要如何使用碎片才能充分地利用平板屏幕空间呢?...暂停状态 ​ 当一个活动进入暂停状态(由于另一个未占满屏幕活动被添加到了栈顶),与它相关联可见碎片就会进入到暂停状态。...停止状态 ​ 当一个活动进入停止状态,与它相关联碎片就会进入到停止状态,或者通过调用FragmentTransactionremove() 、replace() 方法将碎片活动中移除,但如果在事务提交之前调用...例子很简单,仍然是在FragmentTest项目的基础上改动

    1.4K20

    Android从零开始搭建MVVM架构(4)——LiveData

    比如当我们使用 Retrofit+Rxjava处理接口回调数据,需要考虑activity 或 fragment 生命周期,以解决 onStop 或 onDestory之后回调数据问题。...6.适应屏幕旋转数据保存 像屏幕旋转导致 activity 或 fragment重创建之后,Livedata 会立即通知一下相应观察者。保证了数据不会丢失。...当你更新LiveData对象中存储数据,所有注册了Observer,只要所绑定LifecycleOwner处于活动状态,就会被触发通知。...确保Activity或Fragment一旦变为活动状态,就有可展示数据。 当应用程序组件处于STARTED状态,它就需它所观察LiveData对象中接收到最新值。...Lifecycle提供了 Transformations类,提供了支持这些使用场景方法。

    2.3K30

    360度无死角,Android Jetpack面试技巧大揭秘

    出发点: 在回答这个问题,要突出Navigation组件优势,以及它在处理导航和页面交互相对于传统Fragment事务创新之处。...它使用场景包括但不限于: 单一活动Fragment架构: 通过将所有Fragment集中在一个活动中,简化了导航管理和传递数据复杂性。...参考简答: ViewModel作用在于解决Android应用中活动和碎片(Fragment生命周期问题。它允许数据在屏幕旋转等配置更改时存活,并确保数据在不同组件之间共享而不丢失。...数据共享:通过ViewModel,可以在不同UI组件之间共享和管理数据,避免重复加载或丢失数据。 状态保存:ViewModel在配置变更保持其状态,例如屏幕旋转,避免重新加载数据和执行耗时操作。...ViewModel存活周期: 使用ViewModel正确处理配置变化,保证数据在屏幕旋转等情况下不丢失。

    22910

    你真的了解ViewModel设计思想吗?

    在Android中,ViewModel通常用于存储和管理与UI相关数据,以确保这些数据在屏幕旋转或配置更改等情况下不会丢失。 原理解析 ViewModel原理是基于ViewModelStore类。...当UI控制器销毁,系统会其对应ViewModelStore实例中移除ViewModel。...这意味着我们无需担心内存泄漏或不必要资源占用。 持久性存储: ViewModel可以存储大量数据,并且在配置更改时仍然保持活动。...这对于在Activity和Fragment之间传递数据非常有用。 为什么需要ViewModelStore ViewModelStore是用于管理ViewModel实例生命周期一种机制。...它存在是为了解决以下问题: 生命周期一致性:在Android开发中,我们经常遇到配置更改(如屏幕旋转)导致Activity或Fragment被销毁并重新创建情况。

    23610

    在苹果应用商店17个应用程序中发现iOS Clicker Trojan

    捆绑17个iOS应用程序恶意代码组件,能够与现有的命令和控制(C2)服务器进行连接,并且它可以模拟广告点击,在后台打开网页,而无需用户参与,利用所有被感染iPhone、iPad和iPod,从而开展了一次广告欺诈活动...该木马被称为Android.Click.312.origin,会在启动应用程序8小后激活以逃避检测。...随后,研究人员在分析恶意活动发现了另一个变体,名为Android.Click.313.origin。...然后将信息存档并传送到C2服务器,该服务器回复有关命令和要执行安装新程序信息。 团队建议软件开发人员通过应用程序赚钱并且要为此负责任,而不是将可疑SDK集成到其软件中。...在正常网络环境中,移动恶意软件仍然是鲜为人知威胁之一,但在具有针对性攻击场景中,使用率更高。建议用户检查所安装应用程序是否合法,并具有良好评价,并确保正常运行时,可以不要求更多权限。

    2.6K20

    Android基础部分再学习---activity状态保存

    因为这个Activity对象仍然保存在内存中,它所有信息和状态仍然是存在,当这个Activity再次返回到前台是,它仍然保持着离开时候样子。...widget都适当实现了这个方法,这样任何可见UI更改活动在重新创建自动保存和恢复。...所以我们可以用下面的办法,来测试Activity状态保存。 就是旋转设置,让屏幕方向变化(当然前提是你没有锁定设置旋转功能,Activity也没有设置屏幕方向)。...() 只有在系统即将要自动清理销毁Activity或Fragment前才会调用,  换句话说:你自己finish,他肯定不会调用,必须是系统自己触发, 比如  1, 由于重力感应 手机竖屏变为横屏...,  2, 手机点击Home键和长按Home键 3, 点击电源键锁屏 4, 当前Activity跳到另一个Activity 5, 应用内存不足即将自动销毁 2.onSaveInstanceState

    1K20

    安卓应用安全指南 4.1.3 创建使用活动 高级话题

    例如,当默认活动由启动器启动,此活动将是根活动。 根据 Android 规范,发送到根Activity意图内容可以任意应用中读取。 因此,有必要采取对策,不要将敏感信息发送到活动。...被调用活动成为根活动,取决于以下内容。 被调用活动启动模式 被调用活动任务及其启动模式 首先,让解释一下“被调用活动启动模式”。...因此,在开发应用时,最好设法以“标准”来调用活动。 这是一个示例,其中发送给私有活动意图,可以其他应用中读取。示例代码表明,私有活动调用方活动以singleInstance模式启动。...目标名称 目标类名称 由Intent#setData()设置 URI 例如,当应用发送邮件,如果应用将邮件地址指定为 URI,则邮件地址不幸会输出到LogCat。...4.1.3.6 防止PreferenceActivity中Fragment注入 当PreferenceActivity派生类是公共活动,可能会出现称为片段注入 [5] 问题。

    1.4K20

    5. Jetpack源码解析---ViewModel基本使用及源码解析

    简单来说:ViewModel是以关联生命周期方式来存储和管理UI相关数据类,即使configuration发生改变(例如屏幕旋转),数据仍然可以存在不会销毁....被销毁了还是屏幕旋转导致configuration发生了变化,保存在其中数据依然存在。...图中展示了当一个Activity经过屏幕旋转生命周期状态改变,右侧则是ViewModel生命周期状态。...基本使用 3.1 数据存储 我们参考官方Demo实现一个计时器功能,并且演示当屏幕发生旋转,计时器会不会重新启动: DemoViewModel class DemoViewModel : ViewModel...,当我旋转屏幕时候你会发现,计时器值并没有变化,仍然按照旋转之前数值进行计数。

    83820

    learning:vpp bond

    同时,这些捆绑在一起链路通过相互间动态备份,可以有效地提高链路可靠性。 2、目的 随着网络规模不断扩大,用户对骨干链路带宽和可靠性提出越来越高要求。...采用链路聚合技术可以在不进行硬件升级条件下,通过将多个物理接口捆绑为一个逻辑接口,达到增加链路带宽目的。在实现增大带宽目的同时,链路聚合采用备份链路机制,可以有效提高设备之间链路可靠性。...2、提高可靠性:当某条活动链路出现故障,流量可以切换到其他可用成员链路上,从而提高链路聚合接口可靠性。 3、负载分担:在一个链路聚合组内,可以实现在各成员活动链路上负载分担。...在所有bond物理网卡中,同一刻只有一张网卡被激活,当且仅当活动网卡失效才会激活其他网卡。...4、mode round-robin:此模式使用轮询策略,即顺序在每一个被bond网卡上发送数据,这种模式提供负载均衡和容错能力。

    1.6K30

    《移动互联网技术》第五章 界面开发: 掌握Activity基本概念,Activity堆栈管理和生命周期

    一个界面就是一个活动,而所有这些活动都是由Android系统统一进行管理。由于手机屏幕限制,通常屏幕上一次仅显示一个活动界面。...(2) 暂停状态 活动处于暂停状态活动界面部分可见,用户不能够对它进行操作,比如点击删除图片按钮,在图片显示界面(活动)上会弹出一个对话框,对话框让用户确认是否删除图片,对话框没有占据整个屏幕,因此显示图片界面...处于暂停状态活动仍然是存活着,系统通常不会回收这种活动。 (3) 停止状态 当活动被压到返回栈下面,在屏幕上完全不可见,这个时候活动就处于停止状态。系统会保存活动状态和成员变量。...android-support-v4.jar 是Google提供兼容低版本Android设备软件。现在使用Android Studio开发,系统默认导入v7,v7含了v4。...为了适应手机和平板不同大小屏幕,把这两部分分别做成单独组件模块,在Android系统中称为“碎片”(Fragment)。

    17010

    Activity 不只有跳转。功能篇(一)

    SingleTop:在每次启动活动时候如果发现栈栈顶已经有该活动了,那么就直接使用它,不会再创建新活动实例。...2、每次用户旋转屏幕,您Activity将被破坏并重新创建。当屏幕改变方向,系统会破坏并重新创建前台Activity,因为屏幕配置已更改,您Activity可能需要加载替代资源(例如布局)。...状态   当您Activity在之前被破坏后重新创建,您可以Bundle系统通过您Activity中恢复您保存状态。...跳转,携带值就会调用onNewIntent()方法,然后是onRestart->onStart()->onResume(); 7:Activity启动过程 启动过程不是启动模式,所谓启动过程,就是你看到应用图标点击后到正式开启所经过过程...第一种是桌面launcher上点击相应应用图标 第二种是在activity中通过调用startActivity来启动一个新activity 由于launcher也是一个程序,所以当我们点击应用图标的时候系统会调用

    1.1K20

    很全面的Android面试题

    Activity中提供了一个 onSaveInstanceState()回调方法,这个方法会保证一定在活动被回收之前调用, 可以通过这个方法来解决活动被回收临时数据得不到保存问题。...以下几种情况分析都遵循该原则 当用户按下HOME键 长按HOME键,选择运行其他程序时 锁屏 activity A中启动一个新activity 屏幕方向切换 如何退出Activity?...活动传递给Fragment:为了方便碎片和活动之间进行通信, FragmentManager提供了一个类似于findViewById()方法,专门用于布局文件中获取碎片实例,前提是自己在布局文件中定义...就可以调用活动方法了 activity给fragment传递数据一般不通过fragment构造方法来传递,会通过setArguments来传递,因为当横竖屏会调用fragment空参构造函数,数据丢失...fragmentfragment数据传递 首先在一个fragment可以得到与它相关联活动,然后再通过这个活动去获取另外一个fragment实例,这样也就实现了不同fragment之间通信功能

    54610
    领券