开发报警应用程序。
我在活动上使用listview来预警。 在应用程序完成BroadcastReceiver.onReceive()方法之后, 我想删除列表检查。
但我不知道如何访问活动。 有人知道吗?
以下是我的代码:
public class Activity_001 extends ListActivity {
Intent intent = new Intent(this, ReceiverGenerateAlarm.class);
intent.setAction(Conf.GenerateAlarm);
intent.putExtra(cal,timerList.get(0).getCal().getTimeInMillis())
PendingIntent sender = PendingIntent.getBroadcast(this, 0, intent,
0);
AlarmManager am = (AlarmManager)
(this.getSystemService(ALARM_SERVICE));
am.set(AlarmManager.RTC_WAKEUP,
timerList.get(0).getCal().getTimeInMillis(), sender);
}
public class ReceiverGenerateAlarm extends BroadcastReceiver {
@Override
public void onReceive(Context context,Intent intent) {
String action = intent.getAction();
if(action.equals(Conf.GenerateAlarm)) {
Bundle bundle=intent.getExtras();
long cal = bundle.getLongArray("cal");
Calendar c = Calendar.getInstance();
c.setTimeInMillis(cal);
MediaPlayer_inherit_Class tm = new MediaPlayer_inherit_Class(cal);
tm.play();
//in here, wanna access alarm reservation list and remove check of list. as application has executed.
//set next alarm, if needed.
}
答案 0 :(得分:1)
如果我理解正确,您应该使用SQLite数据库存储“警报预留”。如果是这样,只需更新onReceive()
中的数据库条目即可。恢复Activity
后,应检查警报db表的更改并相应地更新UI。
另一种方法是使用bundled extras从startActivity()
拨打onReceive()
。可能会传递行ID或时间戳以使用Intent.putExtra()
进行查询。
另一种方法是将BroadcastReceiver
放入Activity
班。
希望有所帮助。