服务和活动之间的接口

时间:2017-11-14 01:07:45

标签: android android-activity service interface

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

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

我的问题是,我使用不良做法吗?我应该实现LocalBroadcastReceiver来与活动进行通信而不是使用接口吗?

你建议我做什么?

1 个答案:

答案 0 :(得分:0)

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

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

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

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