Skip to content

业务组件的生命周期

xiaojinzi123 edited this page Jul 15, 2020 · 2 revisions

业务也有生命周期?

在依赖和配置的 wiki 上,有注册业务组件的步骤,那么当你注册或者反注册一个业务组件的时候,业务组件本身如何知道?每一个业务组件如何能得到一个被加载和被卸载的通知?

怎么做

新建一个类实现 IApplicationLifecycle 接口, <=1.8.2.3 的老版本需要实现 IComponentApplication 接口 并且使用 @ModuleAppAnno 注解.示例如下:

@ModuleAppAnno()
public class Component1Application implements IApplicationLifecycle { // 老版是 IComponentApplication 接口

    @NonNull
    privat Application mApp;

    @Override
    public void onCreate(@NonNull final Application app) {
        mApp = app;
        // 你可以做一些当前业务模块的一些初始化
    }

    @Override
    public void onDestory() {
        // 你可以销毁有关当前业务模块的东西
    }

}

类的构建函数的参数必须有且只有一个参数,而且参数类型必须是 Context 或者 Application,那么构造函数就可能有以下三种情况

  • xxx() -- 无参构造器
  • xxx(Context context) -- 有参构造器,其实这个 Context 就是 Application
  • xxx(Application context) -- 有参构造器

总结

按照上述的步骤就可以有一个可以接受生命周期的类,注意点有以下几点:

  1. 类必须实现 IApplicationLifecycle(老版是'IComponentApplication`)接口
  2. 类必须使用 @ModuleAppAnno 注解标记
  3. 这样的类可以有多个,都会生效
Clone this wiki locally