Настройка уведомления для запуска в определенное время в Android

1

Я пытаюсь получить уведомление об увольнении в определенное время. Мне приходит в голову, что мне не нужно будет использовать диспетчер аварийных сообщений, так как у меня есть переменная "alCal", которая устанавливает время. Можно ли преобразовать alCal в Long и использовать его вместо System.currentTimeMillis(); как переменная fireTime? Если да, то как бы преобразовать alCal в Long? Вот мой текущий код:

            //---use the AlarmManager to trigger an alarm---
        AlarmManager aMan = (AlarmManager) getSystemService(ALARM_SERVICE);

            //---get current date and time---
        Calendar alCal = Calendar.getInstance();
        //---sets the time for the alarm to trigger---                       
        alCal.set(Calendar.HOUR_OF_DAY, 23);            
        alCal.set(Calendar.MINUTE, 41);                
        alCal.set(Calendar.SECOND, 00);

        Intent noteIntent = new Intent(this, Splash.class);
        PendingIntent pendI = PendingIntent.getActivity(this, 0, noteIntent, 0);
        long fireTime = System.currentTimeMillis();
        String noteBody = "notification body";
        String noteTitle = "notification title";
        Notification note = new Notification(R.drawable.noteicon, noteTitle, fireTime);
        note.setLatestEventInfo(this, noteTitle, noteBody, pendI);
        note.defaults = Notification.DEFAULT_SOUND;
        noteman.notify(uniqueID, note);
        //---sets the alarm to trigger--- 
        aMan.set(AlarmManager.RTC_WAKEUP, alCal.getTimeInMillis(), pendI); 
        finish();

нормально, похоже, что я не могу преобразовать alCal в длинный, поэтому, я думаю, мне нужно использовать AlarmManager. Итак, учитывая приведенный выше код, как его изменить, чтобы AlarmManger запускает уведомление в указанное время? Я новичок в Android и Java, поэтому на самом деле я не вижу slution. Я бы подумал, что alCal нужно вызвать где-то в новом вызове Notification, но я не знаю, как это сделать. Eclipse говорит, что я не могу просто обменять fireTime на alCal, поэтому я не знаю, что попробовать дальше.

  • 0
    Вы «преобразования» Alcal долго с alCal.getTimeInMillis ... Ваш вопрос?
  • 0
    Вы отправили аналогичный вопрос за 2 часа до того, как я ответил на него. Вы пробовали это решение? И я не вижу этот вопрос сейчас. Вы удалили это?
Показать ещё 1 комментарий
Теги:
android-notifications

1 ответ

0
Лучший ответ

Мне приходит в голову, что мне не нужно будет использовать диспетчер Alarm Manager

Да, вы бы это сделали.

так как у меня есть переменная "alCal", которая устанавливает время.

Это объект java.util.Calendar. Само по себе он не будет выполнять ваш код (например, отображение Notification) в определенное время.

Можно ли преобразовать alCal в Long и использовать его вместо System.currentTimeMillis(); как переменная fireTime? Если да, то как бы преобразовать alCal в Long?

Вызовите getTimeInMillis().

Имейте в виду, что ваш код не "Установка уведомления для запуска в определенное время в Android". Он немедленно отобразит Notification, а также установит будильник для вызова активности в определенное время в будущем.

  • 0
    конечно, вы правы во всем, что вы указали. Я новичок в Android (думаю, вы можете сказать). Что я пытаюсь сделать Установите оповещение для запуска в определенное время в Android, и я получил большую часть приведенного выше кода из разных мест, и вы правы, этот код сразу же запускает уведомление а затем установить будильник. Не могли бы вы сказать мне, как изменить код, чтобы сигнал тревоги срабатывал? Я полагаю, что мне нужно было бы поместить переменную AlCal в новый вызов Notification, но я не знаю, как это сделать.
  • 0
    @ kirktoon1882: «Не могли бы вы сказать мне, как изменить код, чтобы сигнал тревоги срабатывал?» - используйте PendingIntent с AlarmManager который вызывает что-то другое (например, BroadcastReceiver ), что, в свою очередь, вызывает Notification .
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню