Вопрос по теме сервисов. Делаю сервис, Foreground, он выводит уведомление. Внешний вид уведомления задается своей разметкой, более того, выбор разметки зависит от выбора настроек в программе. Данные в уведомление должны попадать из БД. Так вот, вроде как все работает, запускается таймер с задачей, задача возвращает Notification notif, к которому я применяю nm.notify(1, notif); (где nm = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);) в процедурах onBind и onReBind, но изменение настроек сервис считать не может, он получает всегда значение настройки, которое получил при запуске (тип настройки - булево). И никак его не поменять, пробовал передавать значение настройки в Интенте при биндинге сервиса - нифига... Никак не поменять уведомление. Максимум 1 раз почему то, и как только срабатывает таймер задачи - оно опять приходит к первоначальному виду. Делал стоп-старт сервиса, но это как то... криво. Почему сервис не может считать значение настроек (объявляются они в модуле сервиса так: SharedPreferences sp_default = PreferenceManager.getDefaultSharedPreferences(this);)? И почему даже через Интент не передать изменившееся значение настройки?!! Делаю в MainActivity так (в процедуре onSharedPreferenceChanged):
Код: Выделить всё
Intent intent = new Intent(this, CurrencyForegroundNotify.class);
intent.putExtra("update_notification", true);
intent.putExtra("daily_dynamic", prefs.getBoolean("daily_dynamic", false));
bindService(intent, sConn, BIND_AUTO_CREATE);
unbindService(sConn);
Что я могу делать не так? Возможно где то принципиальная ошибка?
Т.е., в итоге, единственная у меня счас проблема - я банально не могу обновить уведомление! Задача-таймер работает (по логам), но считывает данные откуда то из кэша что ли. Уведомление выводится красивое , но статичное...
Заранее спасибо!!!