如何解决在活动之间传递自定义对象
我正在学习如何在 Android Studio 中使用 MQTT 的 this 教程。在其中,他们创建了一个使用 MQTTAndroidClient 库的 MQTTClient
类。我想将 MQTTClient
类从一个活动传递到另一个活动。任何建议我如何做到这一点?我是 Android 开发人员的新手,我正在尝试在没有太多专业知识的情况下协商可序列化/可打包工具。谢谢!
附言我正在用 Kotlin 开发
解决方法
在活动之间传递复杂的类通常是一个坏主意。对于这种用法,您应该使用 Singleton 并将其存储在您的 Application 类或类似的东西中。
,我不建议您通过活动传递整个 MQTTClient
。
我建议您阅读此 Dependency-Injection manual 或多或少是您需要的,通常您会使用 dependency injection
库/框架来做您想做的事,但由于设置起来很复杂-大多数我会按照我之前链接的链接进行操作。
示例代码:
// Container of objects shared across the whole app
class AppContainer {
val mqttClient = MQTTClient() //<-- Initialisation
}
然后创建自定义 Application
class MyApplication : Application() {
// Instance of AppContainer that will be used by all the Activities of the app
val appContainer = AppContainer()
}
不要忘记使用 name 属性将其添加到 manifest.xml
。
然后从你的 Activity 你需要这个 MQTTClient
你使用:
val appContainer = (application as MyApplication).appContainer
val mqttClient = appContainer.mqttClient
@Ben-J 的建议也是一个好点,要在 kotlin 中创建 Singleton
,您可以使用 object
键盘。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。