首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏哈利迪ei

    Android-Jetpack笔记-ViewModel

    ViewModel处于数据逻辑层,他的生命周期贯穿整个宿主,如act因屏幕旋转销毁重建时,其依然存活,只有act.finish后,才会自动销毁,因此可以用他来维持宿主的数据状态。现在比较流行的方式是把他当做唯一数据源来驱动UI展示:

    95720发布于 2020-08-10
  • 来自专栏哈利迪ei

    Android-Jetpack笔记-ViewModelSavedState

    上篇文章提到,虽然viewModel要比onSaveInstanceState简单,但是viewModel只能在屏幕旋转和语言切换后(即配置变更时)的页面重建维持数据,当页面意外销毁时数据无法恢复(viewModel也会重建),而这点onSaveInstanceState可以做到。关于意外销毁,我们暂且理解成非配置变更引起的销毁重建,比如内存不足等场景。

    80320发布于 2020-08-10
  • 来自专栏哈利迪ei

    Android-Jetpack笔记-Room

    Room是一种ORM(对象关系映射)框架,可以用OOP(面向对象)的思路开发数据库,有点像早期的greenDAO,不过Room作为Jetpack的一员,能够返回更多类型的数据,比如能直接返回DataSource.Factory来友好的支持Paging的使用,本文主要总结基础的使用和原理。

    68410发布于 2020-08-10
  • 来自专栏哈利迪ei

    Android-Jetpack笔记-DataBinding

    DataBinding即数据绑定,可以实现数据和UI的双向绑定。数据改变时,驱动UI刷新;操作UI时,也可以同步给数据。通常在开发界面时,总有findViewById的重复工作,DataBinding可以免去这些操作。同时,DataBinding还可以直接在xml中绑定数据,免去类似setText的操作,让数据来驱动UI刷新。

    1.1K20发布于 2020-08-10
  • 来自专栏哈利迪ei

    Android-Jetpack笔记-LiveData

    LiveData即有生命的数据,通过观察者模式实现,当数据发生变化时可以收到回调。同时还具备感知宿主生命周期的能力。

    75120发布于 2020-08-10
  • 来自专栏哈利迪ei

    Android-Jetpack笔记-Lifecycles

    Lifecycle即生命周期,一些业务场景如三方地图、播放器等,依赖于activity的生命周期,会有类似下面的用法:

    48620发布于 2020-08-10
  • 来自专栏哈利迪ei

    Android-Jetpack笔记-WorkManager

    WorkManager能帮我们更好的管理后台任务,可以更好地管理执行时机、执行顺序和执行状态(有无网络、是否在充电)。他会根据系统版本选择合适的方案执行任务,比如在API 23及以上使用JobScheduler,以下则使用BroadcastReceiver和AlarmManager,能兼容到API 14。同时,他会将任务存储进数据库来保证关机重启后任务仍可执行(这点有待验证,因为国内机型太多了)。

    1.2K20发布于 2020-08-10
  • 来自专栏哈利迪ei

    Android-Jetpack笔记-Navigation之Fragment使用

    Navigation是一种导航的概念,即把Activity和fragment当成一个个的目的地Destination,各目的地形成一张导航图NavGraph,由导航控制器NavController来统一调度跳转,本文会先简单分析下AS自带的示例代码。

    2K30发布于 2020-08-10
  • 来自专栏哈利迪ei

    Android-Jetpack笔记-Paging结合网络数据

    上篇文章介绍了paging+room的使用,这篇主要介绍paging+网络数据的使用和原理。

    1.2K20发布于 2020-08-10
  • 来自专栏哈利迪ei

    Android-Jetpack笔记-Navigation之Fragment支持复用

    上篇文章Android-Jetpack笔记-Navigation之Fragment使用提到,每次切换目的地,fragment是反复销毁重建的,按照谷歌推荐的1个APP只需1个activity的思路开发,

    2.5K20发布于 2020-08-10
  • 来自专栏哈利迪ei

    Android-Jetpack笔记-Paging结合数据库

    在平时使用RecyclerView时,下拉刷新时先更新数据然后调用Adapter.notifyDataSetChanged全量更新,修改条目时则先更新数据,然后调用Adapter.notifyItemXXX进行局部更新。Paging出现后,则只需要对数据进行变更,无需手动刷新UI,其内部会对数据源进行diff操作(基于Myers 差分算法),然后选择合适的方式刷新UI,同时他还处理了数据的分页加载。本文主要结合Room数据库进行使用和分析。

    1.1K30发布于 2020-08-10
领券