2012-03-08 3 views
1

У меня есть приложение, в котором есть система сигнализации, которая работает исправно, и я копирую все 5 классов и просто меняю имя базы данных, но она не работает, я могу пропустить все код, но я хочу услышать, если кто-то раньше был чем-то вроде этого.Androids AlarmManager wont trigger alarm

как я вызываю новый ReminderManager (this) .setReminder (mRowId, mCalendar);

строка ID заполнена (некоторое число) и mCalendar (есть дата, которую я сравниваю с датой с Mcalendar другого приложения, которое у меня есть, и это тот же формат), и когда я называю это, все идет так, как это она должна createse ожидающего намерения

public void setReminder(Long taskId, Calendar when) 
{ 
    Intent i= new Intent(mContext,OnAlarmReciver.class); 
    i.putExtra(DatabaseIN.KEY_ROWID,(long)taskId); 


    PendingIntent pi=PendingIntent.getBroadcast(mContext,0, i, PendingIntent.FLAG_ONE_SHOT); 
    mAlarmManager.set(AlarmManager.RTC_WAKEUP,when.getTimeInMillis(),pi); 

} 
after this nothing happens... can anyone help 

ответ

0

Попробуйте очистить ур project-> чистым, и если это не поможет создать новый проект и начать запись clases снова .. что работал для меня: D

+1

спасибо, что это мне помогло – Tony

0

Возможно when еще не произошли (слишком далеко в будущем) или это уже произошло (в прошлом, прежде чем ваш призыв к set()).

Или, возможно, у вас нет OnAlarmReceiver, определенных в вашем манифесте.

+0

у меня есть это <деятельность андроид : label = "@ string/app_name" android: name = ". OnAlarmReciver" /> Tony

0

PendingIntent.getBroadcast повторно использует соответствующий запрос, поэтому, возможно, он уже уволил это ожидающее намерения (например, возможно, из кода, с которого вы его скопировали), а так как вы используете флаг FLAG_ONE_SHOT, это будет только когда-либо огонь один раз.

Быстрый тест - удалить флаг FLAG_ONE_SHOT и посмотреть, не срабатывает ли он. Если это проблема, просто используйте другой код запроса в PendingIntent.getBroadcast.

+0

Что мне следует поставить вместо FLAG_ONE_SHOT? – Tony

+0

Это зависит от того, что вы пытаетесь выполнить. Если вы хотите только уволить намерение, когда вы все еще можете использовать флаг, но код запроса должен отличаться для разных целей (сейчас вы используете 0, возможно, больше одного сигнала). Если вам действительно не нужен FLAG_ONE_SHOT, не используйте флаг (т. Е. Передайте его 0). – dule