1

Intent我正在为我创建一个Service

_myServiceIntent = new Intent(this, typeof(MyServiceCls));

这有效,但MyServiceCls有依赖关系。我有什么办法可以将它们传递给MyServiceCls而不是在默认构造函数中创建它们的实例?

4

1 回答 1

0

向服务发送数据的最简单方法是通过意图,但这意味着参数是序列化/打包的,因此无济于事......

我看到了两种方法:

  1. 复杂的解决方案:您可以使用远程信使创建绑定服务;连接服务后,您可以向 Incominghandler 发送Message您需要的每个引用。但是再想一想,我相信这将序列化对象并且服务可能会获得另一个实例......所以,也许简单的解决方案最适合您:

  2. 简单的解决方案:为什么不使用 IoC(控制反转)机制?您可以集成RoboGuiceAndroidAnnotationsDagger

2.1 如果你不想(现在不是时候)集成以上API,你可以在项目中有一个单例类来保存你需要的实例,你可以初始化这个类Application.onCreate(),延迟加载(或不)您需要的对象并为每个对象提供吸气剂。然后在您的服务中,您从单例类中为您需要的每个对象调用 call get 。

于 2013-06-13T08:27:46.397 回答