Как я могу уведомить MapActivity от получателя широковещательной рассылки об изменении оверлея, близости и т. Д. - PullRequest
0 голосов
/ 02 марта 2012

Я зарегистрировал 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 Ответ

0 голосов
/ 21 марта 2012

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

в MapActivity

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