如何从广播接收器通知MapActivity以更改Overlay,proximityalert等

时间:2012-03-01 22:30:50

标签: android handler broadcast

我在MapActivity中注册了ProximityAlert。在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中使用Handler没有问题我可以启动一个倒计时器。 但是广播接收器属于单独的类,我不知道该做什么

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

给我空指针exeption。当我添加

handler= new MyHandler(new ProximityMapActivity());

未出现的处理程序出来了。

你可以给我一个提示或评论吗?谢谢你。

1 个答案:

答案 0 :(得分:0)

我忘了将setter添加到我的对象中。现在我可以传递处理程序的指针。

MapActivity中的

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