我使用gcm
進行聊天,並且我有一個onMessageReceived()
方法,它接收消息並將其保存在數據庫中,並向用戶發送通知。當應用程序關閉時寫入數據庫
當應用程序正在運行(或暫停 - 在後臺運行),這是我的信息存儲在數據庫中:
private DBHelper mDbHelper;
mDbHelper = new DBHelper(MainApplication.getAppContext());
SQLiteDatabase db = mDbHelper.getWritableDatabase();
方法getAppContext()
是我的主要活動中的靜態方法,它返回上下文。
這一切正常。我收到一條消息,保存成功,並獲得通知(當應用程序正在運行時,或在後臺)。
問題是應用程序關閉時。我無法使用MainApplication.getAppContext();
,因爲應用程序關閉時沒有上下文。
也許我應該以某種其他方式傳遞語境?
UPDATE
最後,我在服務器上保存的消息,如果應用程序被關閉,而當用戶打開它,我從服務器fetch'em,從那裏刪除,並保存用戶的設備上。 (如queue pop
操作...)
讓我知道如果有一個更好的方法
看接受的答案...
不如在'服務Context' –
使用請擴大... –