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>