W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
由于 Micronaut 依賴注入基于注解處理器而不依賴于反射,因此當(dāng)使用 Android 插件 3.0.0 或更高版本時(shí),它可以在 Android 上使用。
這使您可以為 Android 客戶端和服務(wù)器實(shí)現(xiàn)使用相同的應(yīng)用程序框架。
配置您的 Android 版本
首先,使用 annotationProcessor 依賴配置將 Micronaut 注釋處理器添加到處理器類(lèi)路徑。
在 Android 構(gòu)建配置的 annotationProcessor 和 compileOnly 范圍中包含 Micronaut micronaut-inject-java 依賴項(xiàng):
Android build.gradle 示例
dependencies {
...
annotationProcessor "io.micronaut:micronaut-inject-java:3.8.6"
compileOnly "io.micronaut:micronaut-inject-java:3.8.6"
...
}
如果您將 lint 作為構(gòu)建的一部分,您可能還需要禁用無(wú)效包檢查,因?yàn)?nbsp;Android 包含一個(gè)硬編碼檢查,除非您使用 Dagger,否則將 javax.inject 包視為無(wú)效:
在 build.gradle 中配置 lint
android {
...
lintOptions {
lintOptions { warning 'InvalidPackage' }
}
}
您可以在 Android 文檔中找到有關(guān)配置注釋處理器的更多信息。
Micronaut inject-java 依賴項(xiàng)使用 Android Java 8 支持功能。
啟用依賴注入
正確配置類(lèi)路徑后,下一步就是啟動(dòng) ApplicationContext。
以下示例演示了為此目的創(chuàng)建 android.app.Application 的子類(lèi):
示例 Android 應(yīng)用程序類(lèi)
import android.app.Activity;
import android.app.Application;
import android.os.Bundle;
import io.micronaut.context.ApplicationContext;
import io.micronaut.context.env.Environment;
public class BaseApplication extends Application { (1)
private ApplicationContext ctx;
@Override
public void onCreate() {
super.onCreate();
ctx = ApplicationContext.run(MainActivity.class, Environment.ANDROID); (2)
registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() { (3)
@Override
public void onActivityCreated(Activity activity, Bundle bundle) {
ctx.inject(activity);
}
... // shortened for brevity; it is not necessary to implement other methods
});
}
}
擴(kuò)展 android.app.Application 類(lèi)
使用 ANDROID 環(huán)境運(yùn)行 ApplicationContext
注冊(cè)一個(gè) ActivityLifecycleCallbacks 實(shí)例以允許 Android Activity 實(shí)例的依賴注入
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: