繁体   English   中英

Android中库与App的通信

[英]Communication between Library and App in Android

我正在开发一个本机 android SDK 理论上可以集成到各种应用程序中。

我需要 SDK 才能在验证某些条件时通知集成它的应用程序。 我不需要发送文本或某种结果,我只需要一种发送通知的方式。 这就是为什么我想通过发送库并在应用程序中配置 BroadcastReceiver 来实现这个目标。 但是,由于这个 SDK 应该是应用程序独立的,所以我不能将 MainActivity 的名称放在意图中。

所以,我想我可以使用 Messenger,但我不确定我是否正确理解它应该如何工作。 据我了解,我的 sdk 应该公开如下方法:

提供处理程序(处理程序 h)

应用程序可以通过它提供处理程序。 有了这样的处理程序,我可以实例化一个 Messenger object 并使用我的 Messenger 的 sendMessage 方法向应用程序发送消息。 我想知道这是否是一种正确的方法,或者对于我的用例来说哪种方法是正确的。

关于库的好处是,它们的代码包含在依赖它们的应用程序中。 所以你可以使用正常的回调机制来通信。

不需要 IPC、BroadcastReceivers 或 Handlers 等。

这是一个简单的入门:

图书馆:

interface MyListener {
    fun callbackThis()
}

class Library {

    var listener: MyListener? = null
    
    fun setListener(listener: MyListener) {
        this.listener = listener
    }

    fun stuffGetsDone() {
        // do your library stuff
        // call the app
        listener?.callbackThis()
    }

}

我的应用程序:

val yourLibrary = Library()

yourLibrary.setListener(object: MyListener() {
    override fun callbackThis() {
       // This is in your app, but called from the library
    }
})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM