Broadcastreceiver中的AlarmManager事件

程序中有一个braodcast receiver。要给这个braodcast receiver设置一个警报器。
我是这样设置的:

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

但是getSystemService在Broadcast receiver中不能够使用。如何修改代码来给Broadcast receiver设置警报器alarm呢?

getSystemService()是Context的一部分。你需要保存在onReceive()方法中接受到的Context。

private Context mContext;

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

然后,在调用getSystemService()的时候使用

AlarmManager am = (AlarmManager) mContext.getSystemService(mContext.ALARM_SERVICE); 

有个Context,使用就行。或者自己写个Application,然后使用ApplicationContext.