程序中有一个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.