连接BroadcastReceivers

时间:2016-01-03 20:58:27

标签: android broadcastreceiver

我有一个广播接收器类,我想连接到主活动类中的广播接收器,以便调用最初称为广播接收器CLASS的方法。

我一直在努力寻找如何做到这一点,而且我认为我过度复杂化了。我在主活动类中看到了一些关于使用registerReceiver的内容,但我认为这不是我想要的。

这是代码设置,以防我感到困惑。

MainActivity.class

public class MainActivity extends AppCompatActivity {
    BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            restartAlarm();
        }
    }
    private void restartAlarm(){
        //Do some stuff and call the RecursionReceiver class
    }
}

RecursionReceiver.class

public class RecursionReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        //Somehow call the broadcast receiver in the main class
    }
}

编辑:我将提供更多细节。

我要做的是设置一个警报,该警报将在某个点触发,这将调用广播接收器类。该类应依次调用重置警报方法,该方法将重置警报。

不,我不能用我想要的重复闹钟。这是因为我正在设置另一个需要此警报的警报。另一个警报将设置为在某个时间触发,加上或减去一个随机的毫秒数。它不应该以相同的间隔触发。但是,我需要在同一段时间后开始。因此,如果我在每天下午6点触发该警报并且想要偏移+或 - 60000毫秒(一分钟),则警报将在边界内触发。我已经完成了这个,但我需要一种方法在所需的时间重置警报,而不是在触发时间。另外,我需要重做计算来改变偏移时间。

我对此的解决方案是有第二个警报,除了调用偏移警报应该重置时启动两个警报的方法之外什么都不做。如果有更简单的方法来设置第二个实用程序警报,请告诉我。否则,我对如何从广播接收器类中调用活动类中的方法感到困惑。

我发现的解决方案说我需要使用registerReceiver并在activity类中有一个BroadcastReceiver。然后我可以从警报调用的接收器激活接收器,并从接收器调用与该方法相同的类中的方法。但是代码没有任何解释,它让我很困惑。

我对如何使接收器在课堂内工作感到困惑。我让外部广播接收器工作,但不是本地接收器。

0 个答案:

没有答案