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

Mosby MVP -如何在onDestroyView()之后重新创建片段的状态?

在Mosby MVP中,当片段的视图被销毁时,可以通过以下步骤重新创建片段的状态:

  1. 首先,在片段的onDestroyView()方法中,保存需要保留的状态数据。可以使用Bundle对象来保存数据,例如:@Override public void onDestroyView() { super.onDestroyView(); Bundle fragmentState = new Bundle(); fragmentState.putString("key", value); // 保存其他需要保留的状态数据 setViewState(fragmentState); }
  2. 接下来,在片段的onCreateView()方法中,检查之前保存的状态数据是否存在。如果存在,则使用该数据来恢复片段的状态,例如:@Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_layout, container, false); if (getViewState() != null) { String value = getViewState().getString("key"); // 恢复其他需要保留的状态数据 } // 初始化视图和其他操作 return view; }

通过以上步骤,可以在onDestroyView()之后重新创建片段的状态。这种方法适用于需要在片段销毁后重新创建时保留状态的场景,例如屏幕旋转或片段被替换后重新创建。在Mosby MVP中,这种状态保存和恢复的方式可以帮助我们更好地管理片段的生命周期和状态。

关于Mosby MVP的更多信息和使用方法,可以参考腾讯云的相关产品介绍页面:Mosby MVP产品介绍

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

相关·内容

Android入门教程 | Fragment 基础概念

不过,当 Activity 正在运行(处于已恢复生命周期状态)时,可以独立操纵每个片段添加或移除片段。...通常,至少应实现以下生命周期方法: onCreate() 系统会在创建片段时调用此方法。当片段经历暂停或停止状态继而恢复后,如果希望保留此片段基本组件,则应在实现中将其初始化。...例如,以下示例说明如何将一个片段替换为另一个片段,以及如何在返回栈中保留先前状态: // Create new fragment and transaction Fragment newFragment...onDestroyView():在移除Fragment相关视图层级时调用。 onDestroy():最终清楚Fragment状态时会调用。...不过 ViewPager 为了防止滑动出现卡顿,有一个缓存机制,默认情况下 ViewPager 会创建并缓存当前页面左右两边页面(Fragment)。

3.5K40

Android Fragment用法知识点讲解

Fragment出现,微信额主界面包含多个Fragment,使得微信功能更加简洁明了。...Android Fragment用法讲解.png Fragment组件 Android Fragment组件.png Fragment是Android 3.0时候被引入,主要目的是为了给大屏幕(平板电脑...图片来源官方: 生命周期 onAttach(): 一旦片段与其活动相关联就被调用; onCreate(): 片段被调用创建; onCreateView(): 创建并返回相关视图结构; onActivityCreated...(): 表示活动已被创建完成了,这里是activity创建成功; onStart(): 片段对用户可见; onResume(): 片段与用户开始交互; onPause(): 片段与用户不再交互;...onStop(): 片段不再对用户可见; onDestroyView(): 销毁与其View相关资源; onDestroy(): 销毁一切片段; onDetach(): 片段与其活动不再相关联

98960

Android Fragment用法实例详解

碎片,它出现是为了更好展示UI设计,让程序更加得到充分展示。Fragment出现,微信额主界面包含多个Fragment,使得微信功能更加简洁明了。 ? Fragment组件 ?...Fragment是Android 3.0时候被引入,主要目的是为了给大屏幕(平板电脑)添加动态和灵活UI支持。利用Fragment实现更好用户体验。 ?...onAttach(): 一旦片段与其活动相关联就被调用; onCreate(): 片段被调用创建; onCreateView(): 创建并返回相关视图结构; onActivityCreated(...): 表示活动已被创建完成了,这里是activity创建成功; onStart(): 片段对用户可见; onResume(): 片段与用户开始交互; onPause(): 片段与用户不再交互;...onStop(): 片段不再对用户可见; onDestroyView(): 销毁与其View相关资源; onDestroy(): 销毁一切片段; onDetach(): 片段与其活动不再相关联。

1.4K31

【Android】再来一篇Fragment懒加载(只加载一次哦)

,支持你在这里进行一些 ui 操作,显示/隐藏加载框 3.支持 view 复用,防止与 ViewPager 使用时出现重复创建 view 问题 第一点应该是比较需要且常用一点,之前那篇博客里没有考虑到这点应用场景是我疏忽...rootView创建完成之后,以便支持ui操作 if (rootView == null) { rootView = view; if (...,保证只有当fragment可见状态发生变化时才回调 * 回调时机在view创建完后,所以支持ui操作,解决在setUserVisibleHint()里进行ui操作有可能报null异常问题..., * 然后在该方法内将状态设置为下载状态,接着去执行下载任务 * 最后在 onFragmentVisibleChange() 里根据数据下载状态来控制下载进度ui控件显示与隐藏...尽量让模块之间,类之间耦合减少些,之所以这样是为了后面更深入理解mvp做准备,总之,代码应该还是很容易可以看懂吧,欢迎大家star交流。

1.6K70

Android交流会-碎片Fragment,闲聊单位与尺寸

Fragment出现,微信额主界面包含多个Fragment,使得微信功能更加简洁明了。...() -> onStart() -> onResume() -> 运行状态 -> onPause() -> 暂停状态 -> onStop() -> 停止状态 -> onDestroyView() ->...onAttach(): 一旦片段与其活动相关联就被调用; onCreate(): 片段被调用创建; onCreateView(): 创建并返回相关视图结构; onActivityCreated(...): 表示活动已被创建完成了,这里是activity创建成功; onStart(): 片段对用户可见; onResume(): 片段与用户开始交互; onPause(): 片段与用户不再交互;...onStop(): 片段不再对用户可见; onDestroyView(): 销毁与其View相关资源; onDestroy(): 销毁一切片段; onDetach(): 片段与其活动不再相关联。

1.2K20

手把手教你封装一个健壮MVP框架,面向接口开发。

注意: 框架中继承了状态栏处理工具 immersionbar,使用时只需实现 setToolbar(), 然后传入相应view即可。...工厂实现类 * * @param viewClazz 需要创建PresenterV层实现类 * @param 当前要创建Presenter类型...如果直接使用弱引用等,都有被回收风险,所以更好处理方式是使用引用队列(当对象被回收时,会将对象放进队列),但同时也要注意,当你get()之后,此时你引用已经成了强引用。...但其实并不是这样,越是看起来复杂东西,往往学会之后很简单。...除去DataBing,学会ViewModel+LiveData是非常快一件事,特别是当你自己封装过MVP之后,就会有一种原来都差不多感觉。

37830

Android学习笔记(六)Fragment生命周期

一、Fragment几种状态:   与Activity类似,Fragment也有一下几种状态:   · 活动状态:当前Fragment位于前台,可见,可获得焦点。   ...· onCreateView(): 每次创建、绘制该FragmentView组件时回调,Fragment将会显示该方法返回View组件。   ...· onDestroyView():销毁FragmentView组件时回调。   · onDestroy():销毁Fragment时调用,一次。   ...· onDetach():将Fragment从Activity中删除、被替换完成时回到该方法,在onDestroy()之后回调。   根据以上方法被回调时机,我们可以根据需要选择性覆盖指定方法。...2、息屏状态下: ?   3、重新点亮屏幕: ?   4、退出: ?   其实还有更多情况,着这里就不一一试验了。这个例子虽然很简单,但能很好反映了Fragment生命周期中各方法回调时机。

677100

Android之Fragment

大屏幕平板小屏幕手机,平板电脑设计使得其有更多空间来放更多UI组件,而多出来空间存放UI使其会产生更多交互,从而诞生了fragments 。   ...当一个片段指定了自身布局时,它能和其他片段配置成不同组合,在活动中为不同屏幕尺寸修改布局配置(小屏幕可能每次显示一个片段,而大屏幕则可以显示两个或更多)。   ...Fragment对象初始创建时,调用onCreate(Bundle)方法; 3. onCreateView(LayoutInflater, ViewGroup, Bundle)方法用于创建和返回跟Fragment...3. onDestroyView()方法用于清除跟Fragment中View对象关联资源; 4. Fragment对象状态被最终清理完成之后,要调用onDestroy()方法; 5....当activity处于Resumed状态时,可以自由地添加和移除fragment,也即是说,只有activity在Resumed状态时,fragment状态可以独立改变。

64920

Android开发:5分钟解析Activity&Fragment生命周期

详细解读每个方法调用场景 onCreate():当创建启动时调用 onStart():当处于可见状态时调用 调用场景:Activity启动:onCreate()->onStart()->onResume...被挡住一部分后(失去焦点,处于onPause状态重新回到当前Activity时(UI最顶层)调用 onStop() 调用场景:“the activity is no longer visible”...详细解读每个方法调用场景 onAttach方法 Fragment和Activity建立关联时候调用(获得activity传递值) onCreateView方法 为Fragment创建视图...执行oncreate方法完成了时候会调用此方法) onDestroyView方法 Fragment中布局被移除时调用(表示fragment销毁相关联UI布局) onDetach方法 Fragment...onStart() onResume() 1.2可以理解为从创建到显示(或切换) 当这个fragment进入“后台模式”时候,它会经历以下状态

1.3K30

Android架构之路-三步实现MVP架构(下)

在上一篇我已经介绍了MVP概念,还有对Google官方示例进行了讲解。请移步:Android架构之路-三步实现MVP架构(上)。本文我将带领大家一起架构MVP。 ?...8、presenter:就是MVPP,俗称媒介。 9、ui:MVPV,我把adapter(适配器)和widget(自定义View)也放在这个包。 10、utils:存放一些开发中工具类。...() { super.onDestroyView(); //关闭软键盘 hideSoftInput();...到此为止,MVP架构已经完成了,是不是很简单。这个是最基础MVP架构,后面我也会结合Clean思想,进行重新架构。...2、在model实现类中DataRequestListener回调监听,当有多个请求时候,我这边需要创建多个DataRequestListener,感觉不是很好,希望弄有好解决方法和我一起探讨。

47620

Android - 懒加载

那我们写一个公共方法,注意此方法执行,要放到onActivityCreate()之后,否则我请求回来数据载体控件Activity都没有创建,所以我要定义几个变量来查看Fragment状态,我们之前也说了...().getSimpleName(),"-----> onStart"); //当 View 被销毁时候我们需要重新设置 isViewCreated mIsFirstVisible 状态...是否已经创建**/ private boolean isViewCreated = false; /**当前Fragment可见状态,一种当前可见,一种当前不可见**/ private boolean...被销毁时候我们需要重新设置 isViewCreated mIsFirstVisible 状态 isViewCreated = false; mIsFirstVisible = true...() { super.onDestroyView(); //当 View 被销毁时候我们需要重新设置 isViewCreated mIsFirstVisible 状态

1.2K20

ViewPager2与Fragment

: 当Fragment显示/不可见时候会回调显示状态(isVisible) onResume : 在该回调中判断当前Fragment是否可见 , 如果可见的话 , 进行懒加载 只有通过以上两个方法来进行懒加载...ViewPager2与Fragment配合使用 在ViewPager2中 , 官方将Fragment生命周期纠正了 , 可以随着ViewPager2左右切换来回调Fragment当前状态....ViewPager2设置Adapter生命周期回调 在setAdapter之后 , ViewPager会回调onAttach、onCreate、onCreateView、onActivityCreate...向右再翻五页(即展示Fragment6) 当页面缓存超过7个时 , 会将最后使用Fragment销毁回收 优先创建操作 , 然后再进行回收 , 最后进行展示 // 创建3 E/CardFragmentTag...向左翻两页(即展示Fragment4) 由于之前Fragment都处于onStart状态 , 所以当划过去之后 , 只会回调onResume 由于向左滑动超过缓存数量 ,所以f7会被回收 // 向左滑一页

2.5K20

Android架构之路--三步实现MVP架构(基础篇-下)

在上一篇我已经介绍了什么是MVP,还有对Google官方示例进行讲解,还有不懂得,可以看Android架构之路--三步实现MVP架构(基础篇-上)。现在我将带领大家一起架构MVP。...8、presenter:就是MVPP,俗称媒介。 9、ui:MVPV,我把adapter(适配器)和widget(自定义View)也放在这个包。...() { super.onDestroyView(); //关闭软键盘 hideSoftInput(); if (mPresenter...这个是最基础MVP架构,后面我也会结合Clean思想,进行重新架构。...2、在model实现类中DataRequestListener回调监听,当有多个请求时候,我这边需要创建多个DataRequestListener,感觉不是很好,希望大佬们又好解决方法。

23610

一个简单页面加载管理类(包含加载中,加载失败,数据为空,加载成功)

我们一般在写网络请求时候,如果不涉及什么MVP,或者别的,就一个简单网络请求,然后再成功结果里刷新View,请求过程中总不能白屏吧,所以有些人可能会让转一个圈,或者显示加载中布局,然后等成功后再隐藏掉...这样的话,也没什么问题,但是如果你状态需要多个,这个时候就很烦了。总不能每个状态判断一下吧。再者说这样也不利于你解耦。...(0),/*加载中状态*/ STATE_SUCCESS(1),/*加载成功状态*/ STATE_ERROR(2),/*加载失败状态*/ STATE_EMPTY(3);/*加载数据为空状态...,我只需要关心它加载回来之后数据,然后根据数据刷新View * @return */ public abstract Object loadData(); } 现在看一下它四种不同状态view...protected abstract Object requestData(); @Override public void onDestroyView() { super.onDestroyView

1.2K40

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

最新 Android 模式, ViewModel 和 LifecycleObserver 可以帮助避免内存泄漏,但如果你遵循旧模式或不知道要注意什么,很容易漏过错误。...例如,假设活动以某种方式创建了对其子 Fragment 引用。然后,只要活动还在,Fragment 也会继续存在。...首先,视图现在将在服务整个持续时间内保持活动状态。此外,因为视图持有对其父活动引用,所以该活动现在也会泄漏。...我们甚至可以更进一步,使用 Bugsnag Integration 将其连接到项目管理软件, Jira,以获得更好可见性和问责制。...他们提供代码片段建议我们做以下工作: private var _binding: ResultProfileBinding?

91830

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

最新 Android 模式, ViewModel 和 LifecycleObserver 可以帮助避免内存泄漏,但如果你遵循旧模式或不知道要注意什么,很容易漏过错误。...例如,假设活动以某种方式创建了对其子 Fragment 引用。然后,只要活动还在,Fragment 也会继续存在。...首先,视图现在将在服务整个持续时间内保持活动状态。此外,因为视图持有对其父活动引用,所以该活动现在也会泄漏。...我们甚至可以更进一步,使用 Bugsnag Integration 将其连接到项目管理软件, Jira,以获得更好可见性和问责制。...他们提供代码片段建议我们做以下工作: private var _binding: ResultProfileBinding?

1.1K10
领券