Не удается отделить методы от класса MainActivity - PullRequest
0 голосов
/ 13 мая 2019

Создан новый класс Java, где пытаются реализовать метод класса AlarmManager.Я хочу создать функциональность для создания, редактирования и удаления сигналов тревоги.Все работало нормально, пока весь код находился в MainActivity классе.

В новом классе есть конструктор, в который передается контекст.При успешной сборке приложения сигнал тревоги не работает.

Я вызываю метод setShowDataEvent для MainActivity:

AlarmController alarmController = new AlarmController(this);
alarmController.setShowDataEvent(startTime, finishTime);

Вот класс AlarmController:

private final String TAG = "AlarmController";

Context context;
PendingIntent pendingIntent;
AlarmManager mAlarmManager;


public AlarmController(Context context){
    this.context = context;
    this.mAlarmManager = (AlarmManager) context.getSystemService(ALARM_SERVICE);
}

public void setShowDataEvent(long startTime, long finishTime){


    newAlarmIntentData(startTime);
    mAlarmManager.setExact(AlarmManager.RTC, startTime, pendingIntent);

    newAlarmIntentData(finishTime);
    mAlarmManager.setExact(AlarmManager.RTC, finishTime, pendingIntent);
    Log.d(TAG, "setShowDataEvent has been executed");
}

private void newAlarmIntentData(long time){
    Intent intent = new Intent(context, AlarmReceiver.class);
    intent.putExtra("showData", true);
    intent.putExtra("time", time);

    pendingIntent = PendingIntent.getBroadcast(context, 1, intent, PendingIntent.FLAG_ONE_SHOT);
}

1 Ответ

0 голосов
/ 14 мая 2019

После перемещения AlarmManager в конструктор и перезапуска AndroidStudio все начинают работать.Я добавил те же данные в намерение, так что теперь есть два разных PendingIntent.

intent.setData(Uri.parse("myalarms://" + time)); 
...