android生命周期绑定

author author     2023-05-09     407

关键词:

参考技术A 最近封装了几个View,都和生命周期有关,比如BannerView、和我们公司的ARView,那他们的生命周期怎么绑定呢?刚开始我是直接告诉别人,你自己在哪个activity使用的,就在哪个activity绑定,结果使用的时候被甲方对接人员打回来说这是低级处理方式,wtm这暴脾气,谁tm低级了,但是没办法别人是甲方只能听他的,直接将生命周期的绑定绑在view里面。下面就介绍几个常用的生命周期绑定。

Application.ActivityLifecycleCallbacks是Android自带的生命周期绑定接口,他有注册与解除方法,当我们进入一个activity的时候就可以注册绑定他了。

简单demo。比如我们要讲一个自定义的View绑定生命周期。
1、先定义一个Application.ActivityLifecycleCallbacks的实现类,为什么这样呢?是因为用户可以要什么选什么,就不用被迫每次都实现全部。

2、定义一个测试用的view,在构造方法绑定注册生命周期,

((Activity)context).getApplication().registerActivityLifecycleCallbacks(lifecycleCallbacks);这句话是注册生命周期当然他也对应了一个((Activity)context).getApplication().unregisterActivityLifecycleCallbacks(lifecycleCallbacks);解绑方法。
在ActivityLifecycleCallbacks 的实现中判断了返回的activity是否为这个view所在的acrivity因为很多activity都会走这个方法,如果不做判断,其他activity的生命周期也会影响这个view,所以加判断是个好习惯。

这次我们模拟一个普通类绑定生命周期这个类名叫Test,哈哈,是不是很高大上?但是写Test类之前先定义我们要绑定的生命周期接口LifecycleListener

这里我们监听下常用的onResume、onPause、onDestroy。
然后是Test类

然后写LifecycleDetector,尝试将test类的实例与fragment绑定

定义没有布局的fragment实例

然后保存fragment和Requestmanager关系

还有一个遗漏的接口

上面这些完成后,就可以使用了,我们随便搞个activity试试名字就叫LeftDemoActivity非常好听了有没有!

当你运行起来的时候,就是成功的时候。

有个东西忘啦,getSnapshot是做保存的,直接把源码拿过来的。

还有其他的方法我没试过,但是这样的生命周期绑定可以解决挺多bug的,玩过哔哩哔哩的应该会遇到他们的一个bug,就是进入一个视频播放页,然后还没加载完成就息屏,他这个时候异步回调回来视频数据了就会在息屏或锁屏界面播出音频来,这是典型的生命周期bug,我遇到过几次了,如果加入这个绑定轻松就能解决问题啦。

Maven命令列出生命周期阶段以及绑定目标?

】Maven命令列出生命周期阶段以及绑定目标?【英文标题】:Mavencommandtolistlifecyclephasesalongwithboundgoals?【发布时间】:2010-12-1503:24:55【问题描述】:我只是在学习Maven,所以这可能很明显,但我找不到一种简单的方法来列出给定项... 查看详情

Android - 如果绑定活动被终止,绑定服务会发生啥?

】Android-如果绑定活动被终止,绑定服务会发生啥?【英文标题】:Android-Whathappenstoaboundserviceifthebindingactivitywaskilled?Android-如果绑定活动被终止,绑定服务会发生什么?【发布时间】:2013-05-1717:47:20【问题描述】:Android提供Servic... 查看详情

android中service的生命周期与启动方法有啥区别?

参考技术A●  startService():开启Service,调用者退出后Service仍然存在。●  bindService():开启Service,调用者退出后Service也随即退出。Service生命周期:●  只是用startService()启动服务:onCreate()->onStartCommand()-&g... 查看详情

临时子表达式的临时生命周期,绑定到引用

】临时子表达式的临时生命周期,绑定到引用【英文标题】:Lifetimeofatemporarywithtemporarysubexpressions,boundtoareference【发布时间】:2017-06-0915:12:09【问题描述】:p在main中的以下使用安全吗?我相信绑定mk_pair产生的临时对象的生命周... 查看详情

安卓服务service全解,生命周期,前台服务后台服务,启动注销绑定解绑,注册

...行->onDestroy()当绑定service和所有客户端解除绑定之后,Android系统将会销毁它,(除非它同时被onStartCommand()方法开启)。因此,如果你的service是一个纯粹的绑定service,那么你不需要管理它的生命周期。然而,如果你选择实现onS... 查看详情

OSGi:没有生命周期管理的服务绑定

】OSGi:没有生命周期管理的服务绑定【英文标题】:OSGi:servicebindingwithoutlifecyclemanagement【发布时间】:2015-08-1123:28:26【问题描述】:我正在EquinoxOSGi框架上构建一个Java应用程序,并且我一直在使用DS(声明式服务)来声明引用和... 查看详情

结构化绑定中的 const 引用是不是会延长分解对象的生命周期?

】结构化绑定中的const引用是不是会延长分解对象的生命周期?【英文标题】:Doconstreferencesinstructuredbindingsextendthelifetimeofthedecomposedobject?结构化绑定中的const引用是否会延长分解对象的生命周期?【发布时间】:2016-12-1602:06:20【... 查看详情

如何清理 Maven 插件绑定?

...时间】:2021-10-0811:36:04【问题描述】:我想从默认的Maven生命周期中清除所有插件绑定。并手动设置,只有我需要的插件。有可能吗?【问题讨论】:您能否描述一下,您打算如何处理那个“空”的生命周期?两个思路:1.使用... 查看详情

react的生命周期

react的生命周期生命周期图谱速查表 旧版本初始化阶段———挂载时的阶段constructor(props)如果不初始化state或不进行方法绑定,则不需要React组件实现构造函数constructor(props)//初始化state或进行方法绑定  super(pr... 查看详情

Maven:将插件执行绑定到另一个插件的执行,而不是生命周期阶段

】Maven:将插件执行绑定到另一个插件的执行,而不是生命周期阶段【英文标题】:Maven:Bindpluginexecutiontotheexecutionofanotherplugin,nottoalifecyclephase【发布时间】:2013-04-2814:47:52【问题描述】:关于已接受答案的说明:我接受了该答案... 查看详情

生命周期钩子(代码片段)

  所有的生命周期钩子自动绑定 this 上下文到实例中,因此你可以访问数据,对属性和方法进行运算。这意味着你不能使用箭头函数来定义一个生命周期方法 (例如 created:()=>this.fetchTodos())。这是因为箭头函数... 查看详情

service的生命周期(代码片段)

谷歌官网的一张Service的生命周期图: 在Service的生命周期里,常用的方法有:6个内部自动调用的方法内部自动调用的方法作用onCreat()创建服务onStartCommand()开始服务onBind()绑定服务onUnbind()解绑服务onRebind()解绑后重新... 查看详情

vue组件的生命周期

先来张组件生命周期的示意图:   文档里是这样描述的:你不需要立马弄明白所有的东西,不过以后它会有帮助。传送门.Vue所有的生命周期钩子自动绑定在this上下文到实例中,因此你可以访问数据,对属性和方法进... 查看详情

vue实例的生命周期(代码片段)

生命周期钩子(来自vue官方文档)所有的生命周期钩子自动绑定 this 上下文到实例中,因此你可以访问数据,对属性和方法进行运算。这意味着你不能使用箭头函数来定义一个生命周期方法 (例如 created:()=>this.fe... 查看详情

跳过 Android 生命周期方法

】跳过Android生命周期方法【英文标题】:SkippinginAndroidLifecyclemethods【发布时间】:2019-02-1203:49:29【问题描述】:我正在尝试理解Activity的生命周期方法的实际概念。我只关注下面提到的主要生命周期方法onCreate()onStart()onResume()onPa... 查看详情

自学ng-生命周期钩子

生命周期钩子  ngOnChange()--重新设置数据绑定输入的属性时相应先于ngOnInit()  ngOnInit()--第一次显示数据绑定和指令输入属性后,初始化指令,在ngOnChange后  ngOnDestroy()-- 当Angular每次销毁指令/组件之前调用并清扫  &nb... 查看详情

android生命周期

1.1、Activity的生命周期-Kilnn-博客频道-CSDN.NEThttp://blog.csdn.net/lonelyroamer/article/details/8927940 查看详情

JSF 生命周期和自定义组件

】JSF生命周期和自定义组件【英文标题】:JSFLifecycleandCustomcomponents【发布时间】:2010-09-0704:52:15【问题描述】:关于在JSF中开发自定义组件,有几件事我很难理解。对于这些问题,您可以假设所有自定义控件都使用值绑定/表达... 查看详情