2015-10-14 2 views
4

The constructor to AlarmManager.AlarmClockInfo принимает PendingIntent, описанный как «намерение, которое может использоваться для отображения или редактирования деталей будильника». Где это используется системой? Я не вижу ничего в интерфейсе Android 6.0, который, похоже, вызовет этот PendingIntent.Где находится PendingIntent в AlarmManager.AlarmClockInfo?

ответ

4

PendingIntent возвращается getShowIntent() в AlarmManager.AlarmClockInfo:

public PendingIntent getShowIntent() { 
    return mShowIntent; 
} 

и используется в onClick() методе StatusBarHeaderView:

PendingIntent showIntent = mNextAlarm.getShowIntent(); 
if (showIntent != null && showIntent.isActivity()) { 
    mActivityStarter.startActivity(showIntent.getIntent(), true /* dismissShade */); 
} 

Визуально, вещь пользователь нажимает на для вызова PendingIntent является дата/время тревоги, показанная на следующем скриншоте в сером справа от значка будильника:

Android 6.0 Notification Shade, Showing Pending Alarm Clock

+0

Спасибо за указание, что ожидающее намерение должно начать действие. Теперь я понимаю, почему мой «BroadcastReceiver» вообще ничего не получает. – Nikolai

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