Android AlarmManager в широковещательном приемнике - PullRequest
8 голосов
/ 07 апреля 2011

У меня есть braodcastreceiver, этот широковещательный приемник должен планировать тревогу.

Обычно я делал бы

AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); 
am.set(AlarmManager.RTC, time,  myPendingIntent); 

Проблема в том, что getSystemService недоступен в широковещательном приемнике только в Activty.,Как бы мне здесь это сделать?

Спасибо, А.

1 Ответ

32 голосов
/ 07 апреля 2011

AndyAndroid,

getSystemService() является частью Context.Вам нужно будет сохранить Context, полученный вами в вашем onReceive() методе, примерно так ...

private Context mContext;

@Override
public void onReceive(Context c, Intent i) {
    mContext = c;
}

Тогда ... куда бы вы ни позвонили getSystemService() вы используете ...

AlarmManager am = (AlarmManager) mContext.getSystemService(mContext.ALARM_SERVICE); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...