Alarmanagerブロードキャストの繰り返しに応答しているブロードキャストレシーバーがあります。ブロードキャストレシーバーのオブジェクトは別のクラスで作成されますが、オブジェクトを作成するクラス内のメソッドを呼び出すには、ブロードキャストレシーバーのOnreceiveメソッドが必要です。
したがって、これをより明確にするために。クラスBは放送受信機です。クラスA内で、クラスBのオブジェクトをインスタンス化します。ただし、OnRecieveメソッドは、クラスAのパブリックメソッドをクラス化する必要があります。
ところで、クラスAはMainactivityクラスです。
クラスBのセットアップで、Runnableオブジェクトをパラメーターとして渡すことを考えていましたが、それを実装する方法が完全にはわかりません。
public class TimerBroadcastReceiver extends BroadcastReceiver{
@Override
public void onReceive(Context arg0, Intent arg1) {
CalcDisplay(true);
}
public void setTimer(Context context)
{
AlarmManager am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, MainActivity.class);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);
am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000 * 60, pi);
}
public void cancelTimer(Context context)
{
Intent intent = new Intent(context, MainActivity.class);
PendingIntent Sender = PendingIntent.getBroadcast(context, 0, intent, 0);
AlarmManager am = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
am.cancel(Sender);
}
}