DoggyZhang 238e55aabd init před 5 měsíci
..
src 238e55aabd init před 5 měsíci
.gitignore 238e55aabd init před 5 měsíci
CLAUDE.md 238e55aabd init před 5 měsíci
README.md 238e55aabd init před 5 měsíci
build.gradle 238e55aabd init před 5 měsíci
consumer-rules.pro 238e55aabd init před 5 měsíci
proguard-rules.pro 238e55aabd init před 5 měsíci

README.md

使用说明

interface IHello {
    fun hello()
}

@RegisterService(value = IHello::class)
class AHello : IHello {
    override fun hello() {
        Log.d("Hello", "AHello")
    }
}

//key用来区分不同的实现,默认key是"default",不能定义多个相同key
@RegisterService(value = IHello::class, key = "key_b_hello")
class BHello : IHello {
    override fun hello() {
        Log.d("Hello", "BHello")
    }
}

fun hello() {
    ServiceLoader.get(IHello::class.java)?.hello() //AHello key是"default", 所以这里调用AHello
    ServiceLoader.get(IHello::class.java, "key_b_hello")?.hello() //BHello key是"key_b_hello", 所以这里调用BHello
}