2016-03-07 2 views
1

я пытался превратить результатПолучение даты из следующего сигнала тревоги

AlarmManager m = (AlarmManager)ctx.getSystemService(Context.ALARM_SERVICE); 
String next=m.getNextAlarmClock().getTriggerTime(); 

В длинной переменной (я хочу мс от эпохи), вещь (очевидно) не могу преобразовать он напрямую, так как переменная next содержит только информацию о дне недели и времени тревоги.

Должен ли я добавить всю информацию, отсутствующую в день вручную? Или есть какой-нибудь метод?

Я также попытался использовать

AlarmManager m = (AlarmManager)ctx.getSystemService(Context.ALARM_SERVICE); 
long next=m.getNextAlarmClock().getTriggerTime(); 

, но не дало никаких результатов, так как это дает мне исключение NullPointer.

ответ

1

getTriggerTime() возвращает long не Long. См this

AlarmManager alarmManager = (AlarmManager)ctx.getSystemService(Context.ALARM_SERVICE); 
long nextAlarmTime =alarmManager.getNextAlarmClock().getTriggerTime(); 

Date nextAlarmDate = new Date(nextAlarmTime); 
System.out.println(nextAlarmDate); 

Здесь, возвращаемое значение времени, при котором сигнал будет вызывать. Это значение является временем настенного времени UTC в миллисекундах.

+0

Большое спасибо, это была типичная ошибка, в моей программе я долго пользовался. В любом случае, я попробовал снова с вашим кодом, но он выдает следующее исключение: '/com.example.almudena.mad_btv1 E/AndroidRuntime: FATAL EXCEPTION: main Процесс: com.example.almudena.mad_btv1, PID: 26198 java. lang.NullPointerException: попытка вызывать виртуальный метод long android.app.AlarmManager $ AlarmClockInfo.getTriggerTime() 'в ссылке нулевого объекта'' – Wazowski