Как я могу уведомить MapActivity от широковещательного приемника об изменении оверлея, близости и т. Д.

Я зарегистрировал ProximityAlert в MapActivity. Нет проблем с перехватом оповещений в BroadcastReceiver и началом новой активности.

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

Поскольку приемник вещания находится в отдельном потоке, я был обработчиком

public class MyHandler extends Handler {
private ProximityMapActivity MainActivity;

MyHandler(ProximityMapActivity a) {
    this.MainActivity = a;
}...

в MapActivity

public void onCreate(Bundle savedInstanceState) {
    handler = new MyHandler(this);

У меня нет проблем с обработчиком из runOnFirstFix runnable Я могу запустить таймер обратного отсчета. Но широкополосный приемник находится в отдельном классе, и я понятия не имею, что делать

private MyHandler handler;
...
handler.sendEmptyMessage(11);

это дать мне исключение нулевого указателя. Когда я добавлю

handler= new MyHandler(new ProximityMapActivity());

Необработанный обработчик выходит.

Можете ли вы дать мне подсказку или комментарий? Спасибо вперед.

1 ответ

Решение

Я забыл добавить сеттер к своему объекту. Теперь я могу передать указатель обработчика.

в MapActivity

public void onCreate(Bundle savedInstanceState) {
    handler = new MyHandler(this);
ProximityAlertHelper.setHandler(handler);
Другие вопросы по тегам