2 xiaoyan 12 xiaoyan_12 于 2012.12.12 18:01 提问

Broadcastreceiver中的AlarmManager事件

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

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

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

2个回答

yongyong_21
yongyong_21   2012.12.13 17:18
已采纳

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); 
cytown
cytown   2012.12.12 18:08

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!