如何从 BroadcastReceiver 管理按钮视图

how to manage button views from BroadcastReceiver

在 MainActivity 中,我有几个按钮,例如开始、停止和运行背景..

我正在使用一项服务来发送位置更新。如果 phone 重新启动,那么我的应用程序将自动启动,我已经通过 broadcastreceiver 实现了这一点。

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

留下检查服务是否 运行 的部分,我正在检查使用 fileInputStream..那是另一个任务..

但是,如何从接收器 class.

管理属于 MainActivity class 的视图

我尝试过一些这样的事情::

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 管理按钮视图..

你可以:

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