美文网首页
Jetpack架构组件之Lifecycles

Jetpack架构组件之Lifecycles

作者: 未聞椛洺 | 来源:发表于2020-05-15 09:45 被阅读0次

Lifecycles用来管理您的 Activity 和 Fragment 生命周期
生命周期感知型组件可执行操作来响应另一个组件(如 Activity 和 Fragment)的生命周期状态的变化。这些组件有助于您写出更有条理且往往更精简的代码,这样的代码更易于维护。
一种常见的模式是在 Activity 和 Fragment 的生命周期方法中实现依赖组件的操作。但是,这种模式会导致代码条理性很差而且会扩散错误。通过使用生命周期感知型组件,您可以将依赖组件的代码从生命周期方法移入组件本身中。
在 Android 框架中定义的大多数应用组件都存在生命周期。生命周期由操作系统或进程中运行的框架代码管理。它们是 Android 运作方式的核心,应用必须遵循它们。如果不这样做,可能会引发内存泄露甚至应用崩溃。

1、Lifecycles的使用

 //    lifecycle  依赖引入
   implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
   implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0'//ViewModel
   implementation 'androidx.lifecycle:lifecycle-runtime-ktx:2.2.0'// Lifecycle
   implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.2.0'//liveData
  • 创建LifecycleObserver
 public class MyObserver implements LifecycleObserver {
        @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
        public void onResume() {
            ...
        Log.e(TAG, "onResume()");
        Log.e(TAG, "当前生命周期状态=" + owner.getLifecycle().getCurrentState().name());
        }

        @OnLifecycleEvent(Lifecycle.Event.ON_PAUSE)
        public void onPause() {
            ...
        Log.e(TAG, "onPause()");
        Log.e(TAG, "当前生命周期状态=" + owner.getLifecycle().getCurrentState().name());
        }
    }
  • 然后在Activity里面调用即可
public class Main2Activity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        getLifecycle().addObserver(new MyObserver());
    }
}

Android 架构组件基本示例

相关文章

网友评论

      本文标题:Jetpack架构组件之Lifecycles

      本文链接:https://www.haomeiwen.com/subject/wxpqohtx.html