29k words 26 mins.

# 总结 使用 Fragment 的 Activity 需要继承 FragmentActivity 这里有派发生命周期方法给 FragmentManager,再派发给旗下 Fragment。 加入 Fragment 时,需要判断 savedInstanceState == null ,避免重复创建实例。 add Fragment,初始时,其 Fragment 生命周期方法会被升级到 onStart 状态,随后与 FragmentManager 的状态同步,如果宿主 Activity 是 Resume 状态,则同步至 onResume 状态。 detach...
8.1k words 7 mins.

# ViewModel 源码剖析 # 示例代码 ViewModel 负责数据存储,借助 LiveData,实现异步获取数据,完成后,通知 UI 观察者,更新 UI public class MyViewModel extends ViewModel { private MutableLiveData<List<User>> users; public LiveData<List<User>> getUsers() { if (users == null) {...
1k words 1 mins.

Requirement:: 应用内有些 Activity 数据敏感,需要区别对待,这里需要识别首次进入红色 Activity 集合内,在红色 Activity 集合内跳转,和跳出红色 Activity 集合三种情况。【当红色 Activity 集合是应用内的 Activity 集合时,就相当于首次进入应用,应用内界面跳转和退出应用的判定】 算法描述: 定义一个保存 Activity Simple Name 的集合。 Activity onResume 时,将此 Activity Simple Name 加入集合。 当集合元素个数等于 1 时,为首次进入该应用打开的第一个...