程序中有一個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);