У меня есть MainActivity
, который запускает класс HintergrundDienst
, расширяющий Service
, нажав кнопку btnStartStop
на главном GUI из MainActivity
с
Intent inte = new Intent(getApplicationContext(), HintergrundDienst.class);
Bundle ints = new Bundle();
ints.putInt....
inte.putExtras(ints);
startService(inte);
MainActivity
и HintergrundDienst
оба имеют
PlayerClass pcObject = new PlayerClass();
Теперь
public class PlayerClass extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
///
}
public void abbrechen(Context context, long requestCode)
{
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent myIntent = new Intent(context.getApplicationContext(), PlayerClass.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
context.getApplicationContext(), (int)requestCode, myIntent, 0);
alarmManager.cancel(pendingIntent);
}
public void alarmieren(Context context, long requestCode, int ResID)
{
AlarmManager alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
...
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, (int)requestCode, intent, PendingIntent.FLAG_ONE_SHOT);
alarmMgr.setExact(AlarmManager.ELAPSED_REALTIME_WAKEUP, requestCode, pendingIntent);
}
}
Я установил будильник в HintergrundDienst
с помощью audioAbspielen.alarmieren(this,time.getTimeInMillis(),R.raw.test);
.
Моя цель - нажать btnStartStop
один раз для запуска и btnStartStop
еще раз для остановки всех сигналов тревоги. Моя проблема в том, что для отключения будильника мне нужно requestCode
. Мне пришлось бы поместить все requestCode
в List
в PlayerClass
. Но я не могу получить доступ к этому List
из MainActivity
, где btnStartStop
находится напрямую. Но я мог бы выставить его методом в PlayerClass
. Но, как мне кажется, pcObject
в MainActivity
не тот, что в HintergrundDienst
. Таким образом, список, заполняемый в HintergrundDienst
, может быть null
или пустым в MainActivity
.
Короче: как мне отменить все тревоги в этом контексте?