【发布时间】:2016-11-15 00:21:21
【问题描述】:
我正在使用gcm 进行聊天,并且我有一个onMessageReceived() 方法来接收消息,将它们保存在数据库中,并向用户发送通知。
当应用程序正在运行(或暂停 - 在后台运行)时,这就是我在数据库中存储消息的方式:
private DBHelper mDbHelper;
mDbHelper = new DBHelper(MainApplication.getAppContext());
SQLiteDatabase db = mDbHelper.getWritableDatabase();
getAppContext() 方法是我的主要活动中的一个静态方法,它返回上下文。
这一切都有效。我收到一条消息,成功保存,并收到通知(当应用程序运行时,或在后台)。
问题是应用何时关闭。我不能使用MainApplication.getAppContext();,因为应用关闭时没有上下文。
也许我应该以其他方式传递上下文?
更新
如果应用程序关闭,我最终将消息保存在服务器上,当用户打开它时,我从服务器获取它们,从那里删除它们,并将它们保存在用户的设备上。 (就像queue pop 操作...)
如果有更好的方法,请告诉我
查看已接受的答案...
【问题讨论】:
-
最好用在
Service Context
标签: java android sqliteopenhelper