如何从BroadcastReceiver管理按钮视图

时间:2015-02-27 13:26:38

标签: android broadcastreceiver

在MainActivity中我有几个按钮,如start,stop和runInBackground ..

我正在使用服务发送位置更新。如果手机重新启动,那么我的应用程序将自动启动,我已通过broadcastreceiver实现此目的。

现在,我需要在重新启动手机后禁用我的应用的启动按钮,因为服务已经启动。

保留检查服务是否正在运行的部分,我正在检查使用fileInputStream ..这是另一项任务..

但是,如何从接收器类管理属于MainActivity类的Views。

我尝试过这样的东西::

In MainActivity.java

public static void disable()
    {
        btnShowLocation.setEnabled(false);
        btnStopLocation.setEnabled(true);
        runbackground.setEnabled(true);
    }

MyReceiver.class

public class MyReceiver extends BroadcastReceiver
{
     MainActivity.disable()
}

它无法正常工作..这样的另一个:

MainActivity.btnShowLocation.setEnabled(false);
MainActivity.btnStopLocation.setEnabled(true);
MainActivity.runbackground.setEnabled(true);    

即使这会让我的应用程序崩溃..

现在如何从BroadcastReceiver管理按钮视图..

1 个答案:

答案 0 :(得分:1)

你可以:

  • 将状态保存在SharedPreferences(或类似)中,并在Activity的onCreate上查询。
  • 从您的接收器触发一个明确的意图来启动Activity并将一些额外的数据放入该意图中,以告知Activity禁用该按钮。
  • 以某种方式使用Application类或单例注册您的Activity,然后在其上调用方法。