我在Firebase Cloud Messaging执行Room
时尝试更新onMessageReceived
数据库。
当我的应用程序关闭时会出现问题,因为在这种情况下,我的数据库连接尚未创建,因此会抛出异常。
我从MainActivity
创建Room数据库连接实例,每次用户启动应用程序时都会使用以下行启动它:
db = Room.databaseBuilder(getApplicationContext(), AppDatabase.class, "database").build();
这个db
var是公共的和静态的,所以我通常会从应用程序的任何地方访问它,因为它始终可用。
但是,在这种情况下不可用,我也尝试从onMessageReceived
创建一个新的连接实例,但没有成功,但由于我无法使用{ {1}}方法,因为没有活动。
有任何解决方法吗? 提前谢谢!
答案 0 :(得分:2)
onMessageReceived
是FirebaseMessagingService
中的一种方法,它显然是一种服务。
服务也是一种背景。因此,不必将MainActivity用作上下文。
在onMessageReceived
方法中,只需使用:
Room.databaseBuilder(this, AppDatabase.class, "database").build();