2012-06-29 3 views
0

Я делаю приложение для будильника. Это приложение вызывает намерение, когда будильник активен (активен по календарю). Когда будильник или календарь погаснет, я хочу вызвать операцию, которая равна hello.class. Этот класс упоминается в ожидающем намерении, которое вызывается календером. Когда каландр вызывается и ожидающее намерение должно быть рассмотрено, НИЧЕГО вообще не происходит. Любые идеи о том, что я делаю неправильно?Назначение календаря для Android

Мой код ниже: В строке «ABC» комментарием является где hello.class упоминается

Intent myIntent = new Intent(AndroidAlarmService.this, Hello.class); // ABC 


pendingIntent = PendingIntent.getService(AndroidAlarmService.this, 0, myIntent, 0); 

AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 

Calendar calendar = Calendar.getInstance(); 
calendar.setTimeInMillis(System.currentTimeMillis()); 

calendar.add(Calendar.SECOND, 5); 
alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent); 
+0

Возможно, это может помочь: HTTP: //stackoverflow.com/questions/3052149/using-alarmmanager- to-start-a-service-at-specific-time –

ответ

1

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

В документации сказано так.

Просто добавьте

myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 

ниже Intent myIntent = new Intent...

И изменить PendingIntent.getService(...) к PendingIntent.getActivity(...)

+0

Было бы хорошо, если бы вы могли дать мне пример кода, где его найти, извините, я все еще просто новичок. –

+0

Спасибо большое :) –

Смежные вопросы