相信大家现在对AlarmManager 已经很熟悉了(新建一个Alarm,注册一个receiver……)所以我就不多说了。只需为您的问题提供解决方案。
无需在类文件和清单中注册 BroadcastReceiver,您只需在 Activity 中创建一个新的 BroadcastReceiver,然后在 onResume 方法中注册它,并在 onPause 方法中取消注册,就像在您的 Activity 中这样:
private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
//do something
}
};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mIntentFilter = new IntentFilter();
mIntentFilter.addAction("your alarm action");
...
}
@Override
protected void onResume() {
registerReceiver(mIntentReceiver, mIntentFilter);
...
super.onResume();
}
@Override
protected void onPause() {
unregisterReceiver(mIntentReceiver);
...
super.onPause();
}
当您的活动处于前台时,接收器只会收到警报意图:)
(对不起,如果我的英语不清楚)