自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 【Jetpack】DataBinding学习笔记

下面代码中用到了@BindingAdapter和@InverseBindingAdapter@BindingAdapter用于实现数据源->View的正向绑定。用于自定义属性绑定逻辑,允许开发者扩展布局 XML 中的属性行为@InverseBindingAdapter用于实现View->数据源反向绑定。InverseBindingAdapter需要指定两个参数:attribute(属性),指定要反向绑定的 XML 属性名(即数据从 View 回传到数据源时对应的属性)

2025-08-07 16:44:49 286

原创 【Jetpack】LiveData学习笔记

让它在不同的生命周期事件中去逐一通知其所有的观察者,当然也包含了我们的。对象(即使数据更新了,我们也无从进行对应UI的更新操作),因此。方法,在这种情况下,它能够响应到任何生命周期中数据的变更事件。互不干涉,大幅降低了互相持有的依赖关系所带来的强耦合性。2.方法内部实际上将我们传入的2个参数包装成了一个新的。的数据发生变化,我们都能在回调函数中进行对应的处理。4.将第2步包装生成的对象交给我们传入的。方法,我们当然不会关心运行在后台的。3.在第三步中,对于一个可观察的。实际就是我们的观察后的回调。

2025-08-05 20:27:11 692

原创 【Jetpack】ViewModel学习笔记

通过一个String类型的状态来表示一个TextView,同理,我们也可以通过一个List<T>类型的状态来维护一个的列表。每当String的数据状态发生变更,View层就能检测并自动执行UI的更新,同理,每当列表的数据源List<T>发生变更,也会自动刷新列表。开发过程中可以大幅减少UI层和Model层相互调用的代码。

2025-08-04 20:57:23 641

原创 【Jetpack】Lifecycle学习笔记

非常好的系列文章,清晰透彻,推荐阅读原文。lifecycle可以和Activity或Fragment生命周期绑定,方便我们做一些跟生命周期相关的业务逻辑。常见的生命周期处理方法是在Activity onResume()、onStart()等中处理相关逻辑,随着业务复杂,也容易出bug,可以使用Lifecycle来,解耦出去这些逻辑,并自动在适当的生命周期内执行。

2025-08-04 20:50:23 771

原创 【Android基础】第一行代码-广播学习笔记

每个应用程序都可以对自己感兴趣的广播注册,这些广播有可能是来自于系统,也有可能是来自于其他应用程序。广播主要分为两种类型:1.标准广播:完全异步执行的广播,这种广播效率比较高但是无法被截断。2.有序广播:在广播发出之后,同一时刻只有一个广播接收器能够接收到这条广播消息,广播接收器中的逻辑执行完毕后,广播才会继续传递。自定义一个广播接收器(这里采用静态注册)<receiver@Override//接收到广播后执行的操作比如在MainActivity里面实现发送广播@Override//...

2025-07-29 20:34:06 340

原创 【Android基础】第一行代码-Service学习笔记

服务常被用作去执行不需要与用户交互而且需要长期运行的任务。服务的运行不依赖于任何用户界面,即使程序被切换到后台,或者打开了另一个应用程序,服务依旧可以保持正常运行。当我们执行一些耗时操作,比如发送网络请求,如果不把这类操作放到子线程里去执行,会导致主线程被阻塞。在子线程中更新UI在android里面如果需要更新UI元素,则必须要在主线程中进行,否则会出现异常。对于这一问题android给出了一套异步消息处理机制。异步消息处理主要由四个部分组成:Message 在线程之间传递的消息,它可以在内

2025-07-28 21:00:55 521

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除