使用dagger将数据库与gcm一起注入,gcm将从数据库中检索数据

时间:2014-10-09 06:51:25

标签: android dependency-injection google-cloud-messaging dagger greendao

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

我设置了GCM并且运行良好:同时,我为应用程序实施了Google Cloud Messaging。这包括一个GCMIntentService,它扩展一个Intent服务,在Manifest文件中作为服务设置,另一个是GCMBroadcastReceiver,它扩展了WakefulBroadcastReceiver,并在Manifest文件中正确设置。

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

DaoMaster.DevOpenHelper helper = new DaoMaster.DevOpenHelper(getApplicationContext(),
                "db-file", null);
db = helper.getWritableDatabase();

虽然我的GCMIntentService能够通过getApplicationContext()获取应用程序上下文,但我无法注入我的databasehelper。

人们在GCM中使用DI吗?: 是否预期DI将无法与GCM一起使用,因为有些情况下应用程序尚未初始化(例如在安装和首次运行之后,然后重新启动手机),但GCM会发出通知in,因此无法初始化databasehelper使用?

旁注:使用Dagger将GCMIntentService和GCMBroadcastReceiver注入我的应用程序是否有意义,尽管应用程序中没有任何内容明确地使用它们,除了使用应用程序初始化它们(我想由于设置在清单文件)?

0 个答案:

没有答案