草庐IT

Jetpack(一)Lifecycle

全部标签

Android Jetpack 从使用到源码深耕【调度任务组件WorkManager 从实践到原理 】(一)

本文,我们对Jetpack的调度任务组件WorkManager,由使用入手,对其源码进行深入学习、总结一下。1.问题研究这个框架之前,我们基于自己已有的知识体系,想一些问题,给自己设定一些目标,带着目标和问题,去阅读这块的源码,相信收获会更多更深一些。1)WorkManager是做什么的?2)WorkManager怎么用?3)WorkManager是如何实现的?我们自己如何去实现这样一个框架,如何实现?4)尝试先用自己的已有知识体系,实现一下WorkManager5)WorkManager如何实现调度任务管理、执行的?是否就是对ThreadPool+Runnable进行的一次封装实现?6)Wo

Jetpack Compose中的导航路由

JetpackCompose中的导航库是由Jetpack库中的Navigation组件库的基础上添加的对Compose的扩展支持,使用需要单独添加依赖:implementation"androidx.navigation:navigation-compose:$nav_version"Jetpack库中的Navigation使用起来还是比较麻烦的,首先需要在xml中进行导航图的配置,然后在代码中使用NavController.navigate(id)进行跳转到指定的id的fragment页面,个人感觉这种方式还是不够灵活,需要预先定义,假如某个fragment没有在xml中定义就无法使用Nav

Jetpack Compose中的导航路由

JetpackCompose中的导航库是由Jetpack库中的Navigation组件库的基础上添加的对Compose的扩展支持,使用需要单独添加依赖:implementation"androidx.navigation:navigation-compose:$nav_version"Jetpack库中的Navigation使用起来还是比较麻烦的,首先需要在xml中进行导航图的配置,然后在代码中使用NavController.navigate(id)进行跳转到指定的id的fragment页面,个人感觉这种方式还是不够灵活,需要预先定义,假如某个fragment没有在xml中定义就无法使用Nav

k8s lifecycle——poststart和prestop

1、lifecycle的声明lifecycle:postStart:exec:command:["/bin/sh","-c","sleep100"]preStop:exec:command:["/bin/sh","-c","sleep100"]2、poststart容器创建后立即执行,主要用于资源部署、环境准备等2.1时序当前container创建后发送钩子命令发送后:pod是pending状态container是waiting状态执行完成后:执行成功:pod会变为running状态,这时会被分配IP执行失败:容器重启,如果poststart执行完之前container退出也会重启2.2com

k8s lifecycle——poststart和prestop

1、lifecycle的声明lifecycle:postStart:exec:command:["/bin/sh","-c","sleep100"]preStop:exec:command:["/bin/sh","-c","sleep100"]2、poststart容器创建后立即执行,主要用于资源部署、环境准备等2.1时序当前container创建后发送钩子命令发送后:pod是pending状态container是waiting状态执行完成后:执行成功:pod会变为running状态,这时会被分配IP执行失败:容器重启,如果poststart执行完之前container退出也会重启2.2com

Android Jetpack 从使用到源码深耕【生命周期感知组件Lifecycle从实践到原理 】(二)

上文,我们首先一个简单的实际代码例子入手,开始说明lifecycle被引入的背景,进而我们使用lifecycle实现了简单的需求,本文,我们一起对Lifecycle的自我实现以及源码进行深入探索。1.自我实现Lifecycle框架还是三板斧,知道了怎么去用?那么用我们自己的知识体系,不妨先猜一下这个如何做的?用自己所学所想的已有知识,试着去实现这样的一个框架。然后再去看lifecycle的源码中的逻辑,是否如我们所想。首先梳理一下,有哪些技术难点或者要点要去解决?1)如何监听fragment、activity等生命周期呢?2)如何通知观察者,相应的生命周期事件呢?猜想实现的中心思想:.应该是基

Android Jetpack 从使用到源码深耕【生命周期感知组件Lifecycle从实践到原理 】(二)

上文,我们首先一个简单的实际代码例子入手,开始说明lifecycle被引入的背景,进而我们使用lifecycle实现了简单的需求,本文,我们一起对Lifecycle的自我实现以及源码进行深入探索。1.自我实现Lifecycle框架还是三板斧,知道了怎么去用?那么用我们自己的知识体系,不妨先猜一下这个如何做的?用自己所学所想的已有知识,试着去实现这样的一个框架。然后再去看lifecycle的源码中的逻辑,是否如我们所想。首先梳理一下,有哪些技术难点或者要点要去解决?1)如何监听fragment、activity等生命周期呢?2)如何通知观察者,相应的生命周期事件呢?猜想实现的中心思想:.应该是基

Jetpack的ViewModel与LiveData总结

本文基于SDK29一、ViewModel与LiveData的作用:1、viewModel:数据共享,屏幕旋转不丢失数据,并且在Activity与Fragment之间共享数据。 2、LiveData:感知生命周期并且通知观察者刷新,防止内存泄漏。 一下用流程图的方式说明一下其是怎么工作的:1、ViewModel的构造:  2、LiveData注册监听: 3、数据改变通知刷新:LiveData中: 总结:1、ViewMode之所以能够共享数据,是因为其被放在ViewModelStore中,而ViewModelStore被放在NonConfigurationInstances(Activity中)这

Jetpack的ViewModel与LiveData总结

本文基于SDK29一、ViewModel与LiveData的作用:1、viewModel:数据共享,屏幕旋转不丢失数据,并且在Activity与Fragment之间共享数据。 2、LiveData:感知生命周期并且通知观察者刷新,防止内存泄漏。 一下用流程图的方式说明一下其是怎么工作的:1、ViewModel的构造:  2、LiveData注册监听: 3、数据改变通知刷新:LiveData中: 总结:1、ViewMode之所以能够共享数据,是因为其被放在ViewModelStore中,而ViewModelStore被放在NonConfigurationInstances(Activity中)这

Jetpack的ViewModel与LiveData

本文基于SDK29一、ViewModel与LiveData的作用:1、viewModel:数据共享,屏幕旋转不丢失数据,并且在Activity与Fragment之间共享数据。 2、LiveData:感知生命周期并且通知观察者刷新,防止内存泄漏。 二、用法 三、原理:1、ViewModel:ViewModelProviders.of(this).get(MyViewModel::class.java)我们通过这个方法来构造ViewModel。@NonNull@MainThreadpublicstaticViewModelProviderof(@NonNullFragmentActivityact