В настоящее время я разрабатываю приложение для Android, которое получает доступ к значениям Wi-Fi, то есть приложение должно сканировать все точки доступа и их конкретные уровни сигнала.Я знаю, что должен расширить класс BroadcastReceiver
, переписывая метод BroadcastReceiver.onReceive(Context context, Intent intent)
, который вызывается, когда значения готовы.
Возможно, существуют решения, предоставляемые самой системой Android, но я относительно новичок в Android, поэтому яможет понадобиться помощь
Проблема, с которой я столкнулся, заключается в том, что я получил один класс (действие, таким образом контролируемое пользователем), которому нужны результаты этого сканирования для двух разных вещей (сначала для сохранения значений в базе данных, или во-вторых, чтобы использовать их для дальнейших расчетовно не оба одновременно!) Итак, как спроектировать систему обратного вызова, чтобы «транспортировать» результаты сканирования из onReceive(Context context, Intent intent)
в операцию, предназначенную пользователем?Мое первое решение состояло в том, чтобы определить перечисления для каждого варианта использования (сохранить или использовать для вычислений), которые классы, заинтересованные в WLAN, должны представить при запросе значений.Но это заставит расширяющий класс BroadcastReceiver
сохранить текущее перечисление и использовать его в качестве параметра в функции обратного вызова класса запросов (этот класс запросов должен знать, что он запрашивал при обратном вызове)
Но это кажетсядля меня это немного грязно;)
Значит, кто-нибудь подойдет для этого?