Android AlarmManager in a Broadcastreceiver

[亡魂溺海] 提交于 2019-12-06 22:28:24

问题


I have braodcastreceiver, that broadcast receiver shall schedule an alarm.

Usually I would do

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

The problem is that getSystemService is not available in a Broadcast receiver only in an Activty. How would I do it here?

Thanks, A.


回答1:


AndyAndroid,

getSystemService() is part of the Context. You will need to save the Context you receive in your onReceive() method like so...

private Context mContext;

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

Then..where you call getSystemService() you use...

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


来源:https://stackoverflow.com/questions/5582227/android-alarmmanager-in-a-broadcastreceiver

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!