Проектное решение: я должен использовать Broadcast Receiver или статические классы - PullRequest
0 голосов
/ 07 мая 2018

Я работаю над настройками приложения: https://developer.android.com/reference/android/preference/PreferenceActivity

прив. активность выглядит примерно так: http://i.imgur.com/qnHbJX9.png

Есть некоторые действия, которые мы должны предпринять, когда пользователь выбирает или отменяет выбор параметров в этом префе. Деятельность (включающая включение / выключение служб, подключение к БД и т. Д.)

В настоящее время большая часть логики для выполнения этого действия написана в самом действии (активность огромна) и некоторых статических классах.

Теперь мы хотим сохранить эти настройки на сервере и выполнить эти действия при входе пользователя в систему (без запуска предпочтительного действия). Как мне переместить логику?

Для полностью статических классов? Для отдельных приемников вещания? Что-то еще?

Изображение взято отсюда: Активность предпочтений при прослушивании щелчков по предпочтениям

1 Ответ

0 голосов
/ 31 мая 2018

Создайте PreferencesStorage класс, который асинхронно загружает настройки с сервера и отправляет изменения в настройках на сервер. Затем используйте этот класс в ваших PreferenceActivity и SplashActivity (если вы используете di -, тогда внедрите этот класс как singleton, если не используете экземпляр этого класса). Если в каждом упражнении нужно прочитать некоторые настройки - да, я думаю, BroadcastReceiver будет лучшим решением.

Если вы хотите использовать подход чистой архитектуры, то вы можете создать PreferencesInteractor, который включает в себя PreferencesRepository, и внедрить этот интерактор в SplashPresenter и PreferencesPresenter.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...