有没有办法创建一个带有重载构造函数的类型的Intent?

时间:2013-06-13 08:08:44

标签: android xamarin.android

我正在为Intent创建一个Service

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

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

1 个答案:

答案 0 :(得分:0)

向服务发送数据的最简单方法是通过意图,但这意味着参数被序列化/分配,所以没有帮助......

我看到两种方法:

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

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

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