Android 使用dagger将数据库和从数据库检索数据的gcm一起注入

Android 使用dagger将数据库和从数据库检索数据的gcm一起注入,android,dependency-injection,google-cloud-messaging,dagger,greendao,Android,Dependency Injection,Google Cloud Messaging,Dagger,Greendao,我有使用GreenDAO的数据库,并使用Dagger注入应用程序中: 我使用Dagger将我的a databasehelper类注入到我的应用程序中,它为应用程序保存sqlitedatabase,并为实体执行通常的CRUD功能。我正在使用GreenDAO作为数据库 我已经安装了GCM,并且运行良好:同时,我已经为应用程序实现了Google云消息传递。这包括一个gcminentservice,它扩展了一个Intent服务,并在清单文件中设置为服务,以及一个GCMBroadcastReceiver,

我有使用GreenDAO的数据库,并使用Dagger注入应用程序中: 我使用Dagger将我的a databasehelper类注入到我的应用程序中,它为应用程序保存sqlitedatabase,并为实体执行通常的CRUD功能。我正在使用GreenDAO作为数据库

我已经安装了GCM,并且运行良好:同时,我已经为应用程序实现了Google云消息传递。这包括一个gcminentservice,它扩展了一个Intent服务,并在清单文件中设置为服务,以及一个GCMBroadcastReceiver,它扩展了WakefulBroadcastReceiver,并在清单文件中正确设置

收到GCM推送通知时,我必须从数据库中检索信息:我的GCM正在工作,但在收到GCM推送通知后,我需要访问数据库中的信息。通过使用以下代码显式检索sqlitedatabase,我可以从数据库中检索详细信息:

DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(getApplicationContext(),
                "db-file", null);
db = helper.getWritableDatabase();
虽然我的gcminentservice能够通过getApplicationContext()获得应用程序上下文,但我无法注入databasehelper

人们是否将DI与GCM一起使用?: 是否预期DI将无法与GCM一起使用,因为会出现应用程序未初始化的情况(例如,在安装和首次运行后,然后重新启动手机),但GCM会将通知推入,因此无法初始化databasehelper以供使用

另一方面:使用Dagger将GCMinentService和GCMBroadcastReceiver注入到我的应用程序中有意义吗?尽管应用程序中没有任何东西明确使用它们,但使用应用程序初始化它们(我认为是由于清单文件中的设置)