Jetpack新成员,App Startup一篇就懂
使用示例
- 导包
dependencies {
api "androidx.startup:startup-runtime:1.0.0"
}
- 创建初始化的类实现
Initializer<Void>
接口
public class PhotoEditorInitializer implements Initializer<Void> {
@NonNull
@Override
public Void create(@NonNull Context context) {
ActivityLifecycle.get().initialize((Application) context);
PhotoEditor.init(context);
DataManager.get().registerContentObserver(context);
return null;
}
@NonNull
@Override
public List<Class<? extends Initializer<?>>> dependencies() {
List<Class<? extends Initializer<?>>> initializerList = new ArrayList<>();
// initializerList.add(ProjectInitializer.class);
return initializerList;
}
}
- 在
AndroidManifest.xml
配置就可以了
<!--使用androidx.startup框架进行自动初始化-->
<provider
android:name="androidx.startup.InitializationProvider"
android:authorities="${applicationId}.androidx-startup"
android:exported="false"
tools:node="merge">
<!--可以添加多组下面的标签,按从下到上的顺序执行-->
<meta-data
android:name="com.ijoysoft.photoeditor.manager.ProjectInitializer"
android:value="androidx.startup"
tools:node="remove">
<!--添加tools:node="remove"不自动执行,需要手动调用-->
<!--AppInitializer.getInstance(this).initializeComponent(ProjectInitializer.class);-->
</meta-data>
<meta-data
android:name="com.ijoysoft.photoeditor.manager.PhotoEditorInitializer"
android:value="androidx.startup">
</meta-data>
</provider>
网友评论