Запустить диалоговое окно в определенное время?

Я не знаю, как получить системный день и сравнить его с днем, когда пользователь забирает из DatePicker. Что-то типа :

if (systemtime) = (timePicker) then
show dialog ("This is your birthday")

Это код для выбора пользователем даты: частный класс DatePickerFragment расширяет DialogFragment, реализует DatePickerDialog.OnDateSetListener {

    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        // Use the current date as the default date in the picker
        final Calendar c = Calendar.getInstance();

        if(friend == null) {
            int year = c.get(Calendar.YEAR);
            int month = c.get(Calendar.MONTH);
            int day = c.get(Calendar.DAY_OF_MONTH);

            // Create a new instance of DatePickerDialog and return it
            return new DatePickerDialog(getActivity(), this, year, month, day);
        }

        int year = friend.getYear();
        int month = friend.getMonth();
        int day = friend.getDayOfMonth();

        // Create a new instance of DatePickerDialog and return it
        return new DatePickerDialog(getActivity(), this, year, month, day);
    }

    public void onDateSet(DatePicker view, int year, int month, int day) {
        birthday.set(year, month, day);
    }

person user3663410    schedule 22.05.2014    source источник
comment
Пожалуйста, научитесь кодировать вместо копирования/вставки.   -  person Simon    schedule 22.05.2014


Ответы (2)


попробуйте следующий подход:

установить будильник в диспетчере будильника и активировать отложенное намерение по времени срабатывания будильника. через ожидающее намерение вы можете начать действие как новую задачу, теперь вы можете установить тему действия как диалог. в тревоге вы можете указать определенное время для активности открытого диалога.

person MohdTausif    schedule 22.05.2014

Я думаю, что вы выбираете неправильный путь для установки диалога в конкретном диалоге. Вам нужно принять ожидающее намерение и установить время дня рождения вашего друга, и это все, когда автоматически создается диалоговое окно времени. Вы не хотите создавать сервис для этого и сравнивать день за днем. Надеюсь, вы понимаете...

person Jayesh Khasatiya    schedule 22.05.2014
comment
Спасибо за ответ. Там будет кнопка «Проверить день рождения», которая сравнивает значение из datePicker и системного дня, чтобы отобразить диалоговое окно. Я путаюсь, как это сделать. - person user3663410; 22.05.2014
comment
хорошо, тогда просто получите текущую дату и сохраненную дату дня рождения вашего друга и сравните, но сначала проверьте, что оба формата даты одинаковы. - person Jayesh Khasatiya; 22.05.2014
comment
Могу ли я сохранить их оба в виде строки для сравнения? - person user3663410; 22.05.2014
comment
Могу ли я использовать этот метод для сравнения? - person user3663410; 22.05.2014
comment
голос против защищенного логического значения checkDateValidity (дата даты) { Calendar cal = new GregorianCalendar (date.getYear () + 1900, date.getMonth (), date.getDate (), date.getHours (), date.getMinutes ()); if((cal.getTimeInMillis()-System.currentTimeMillis()) ‹= 0){ return false; }иначе{ вернуть истину; } } - person user3663410; 22.05.2014
comment
Нет, друг мой, это не может работать, потому что начальный год GregorianCalendar — 1900, а начальный год наших системных часов — 1970, поэтому вы не получаете правильное значение. - person Jayesh Khasatiya; 22.05.2014
comment
измените 1900 на 1970 и проверьте это... и почему вы конвертируете обе даты в миллисекунды, а затем проверяете? просто сохраните обе даты в строке и сравните это.. - person Jayesh Khasatiya; 22.05.2014