Я использую gcm
для чата, и у меня есть метод onMessageReceived()
, который получает сообщения, сохраняет их в базе данных и отправляет уведомление пользователю.Запись в базу данных, когда приложение закрыто
Когда приложение работает (или приостановлено - работает в фоновом режиме), это то, как хранить сообщения в базе данных:
private DBHelper mDbHelper;
mDbHelper = new DBHelper(MainApplication.getAppContext());
SQLiteDatabase db = mDbHelper.getWritableDatabase();
Метод getAppContext()
является статическим методом в моей основной деятельности, которая возвращает контекст.
Все это работает. Я получаю сообщение, сохраняю его успешно и получаю уведомление (при запуске приложения или в фоновом режиме).
Проблема в том, что приложение закрыто. Я не могу использовать MainApplication.getAppContext();
, потому что нет никакого контекста, когда приложение закрыто.
Может быть, я должен передать контекст каким-то другим способом?
UPDATE
В конце концов я сохраненные сообщения на сервере, если приложение было закрыто, и когда пользователь открывает его я fetch'em с сервера, удалите их оттуда, и сохранять их на устройстве пользователя , (Как queue pop
операции ...)
Позвольте мне знать, если есть лучший способ
см обслуживаемого ответ ...
Лучше использовать в 'Service Context' –
Пожалуйста, разверните ... –