Как я могу уведомить 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);