我正在为Intent
创建一个Service
:
_myServiceIntent = new Intent(this, typeof(MyServiceCls));
这有效,但MyServiceCls
有依赖关系。有没有办法让我把它们传递给MyServiceCls
而不是在默认构造函数中创建它们的实例?
答案 0 :(得分:0)
向服务发送数据的最简单方法是通过意图,但这意味着参数被序列化/分配,所以没有帮助......
我看到两种方法:
复杂的解决方案:您可以使用remote messenger创建绑定服务;连接服务后,您可以向Incominghandler发送Message
,以获取所需的每个参考。但是再想一想,我相信会序列化对象,服务可能会得到另一个实例......所以,也许简单的解决方案最适合你:
简单的解决方案:为什么不使用IoC(控制反转)机制?您可以整合RoboGuice,AndroidAnnotations或Dagger。
2.1如果你不想(现在不是时候)集成上面的API,你可以在项目中有一个单独的类来保存你需要的实例,你可以在Application.onCreate()
中初始化这个类,懒惰加载(或不加载)您需要的对象,并为每个对象提供getter。然后在您的服务中,您可以从singleton类调用所需的每个对象的调用get。