Jetpack总结
Lifecycle
Lifecycle应用
一般不需要指定依赖,我们只需要依赖implementation 'androidx.appcompat:appcompat:1.4.1'
即可。如果需要指定特定的Lifecycle依赖,可以参考这里:https://developer.android.com/jetpack/androidx/releases/lifecycle。
使用Lifecycle解耦页面组件
可以为方法添加@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
此类注解实现,不过该方式已经被废弃,替代方案:DefaultLifecycleObserver or LifecycleEventObserver
。
使用LifecycleService解耦Service与组件
adb geo设置GPS位置方法:adb -s emulator-5554 emu geo fix 121.4961236714487 31.24010934431376
。
使用ProcessLifecycleOwner监听应用程序生命周期
//依赖
implementation 'androidx.lifecycle:lifecycle-process:2.4.1'
//定义CustomObserver
class CustomObserver : LifecycleObserver {
@OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
fun onResume() {
}
}
//使用
ProcessLifecycleOwner.get().lifecycle.addObserver(CustomObserver())
特点:
- 针对整个应用程序的监听,与Activity数量无关;
- Lifecycle.Event.ON_CREATE只会被调用一次,Lifecycle.Event.ON_DESTROY永远不会被调用。
Lifecycle的好处
- 帮助开发者建立可感知生命周期的组件;
- 组件在其内部管理自己的生命周期,从而降低模块耦合度;
- 降低内存泄漏发生的可能性;
- Activity、Fragment、Service、Application均有Lifecycle支持。