Параметр контекста в методе приемного вещания изменяется после первого сообщения, полученного на устройстве зефира - PullRequest
0 голосов
/ 20 мая 2018

Я наблюдаю действительно странное поведение на моем приемнике вещания на устройстве One Plus Two, работающем с Marshmallow в проекте Xamarin.У меня есть сервис, который я использую для изменения местоположения, и я регистрирую широковещательный приемник в своей деятельности, чтобы прослушивать сообщения от сервиса.При первом получении сообщения параметр контекста является правильным (контекст основной активности, которая зарегистрировала получателя).Однако во второй раз, когда сообщение получено, контекст является контекстом приложения, и поэтому я не могу обновить что-либо об основной активности.Я также тестирую Galaxy S8 Active под управлением Oreo, и на этом устройстве контекст каждый раз корректен.

Я также создал это же приложение в Android Studio, используя анонимный тип для моего вещательного приемника, итам контекст корректен каждый раз на обоих устройствах.

это возможная ошибка xamarin?Я в полной растерянности, куда обратиться дальше.У меня нет других устройств для тестирования, но я предполагаю, что другие устройства, работающие на более старых версиях Android, будут иметь ту же проблему, что и One Plus Two.

также, что бы это ни стоило, я 'Мы пробовали три разных способа обновления основной активности от получателя.1) передача экземпляра mainacctivity конструктору вещательного приемника и последующий вызов методов из этого набора свойств 2) приведение контекста к mainactivity и вызов методов оттуда 3) создание пользовательского обработчика событий и добавление события в broadcastreciver, а затем добавлениеделегат экземпляру получателя и выбор нужных мне значений из пользовательского обработчика событий.

Все три прекрасно работают, но только с первым сообщением.С другим контекстом, проходящим через последующие сообщения, очевидно, что ни одно из них не работает.

...