【问题标题】:Interface between service and activity服务和活动之间的接口
【发布时间】:2018-04-26 19:53:31
【问题描述】:

我有一个绑定到活动的服务。我定义了一个由活动实现的接口。在服务中,我有一个实现活动的接口对象,当我调用返回活页夹的方法时,我给这个对象分配内存。

服务实现socket.io,当我收到来自服务器的消息时,我调用接口方法更新activity中的数据。

我的问题是,我是否使用了不良做法?我应该实现 LocalBroadcastReceiver 来与 Activity 通信而不是使用接口吗?

你有什么建议?

【问题讨论】:

标签: android android-activity service interface


【解决方案1】:

简短的回答是肯定的,它确实是bad practice

长答案,即使您通过接口引用您的活动,它仍然是内存中的同一个对象。因此,假设您在服务上运行了很长时间,然后当活动为 recreated 在轮换或任何类型的配置更改后,您的旧参考将保留在 Service 中,它将是 leaked

因此,由于您的问题过于笼统,我只能列出替代方法,您可以查看所有方法并应用适合您风格的任何方法。

  1. EventBus(发布/订阅模式,最简单的解决方案)
  2. 依赖注入(使用 Dagger 或类似工具将模型注入 活动和服务
  3. 广播接收器
  4. 信使

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-07
    相关资源
    最近更新 更多