AlarmManager能实现重复订一个闹钟,如果要重复订几个闹钟应该怎么办

作者&投稿:徭苛 (若有异议请与网页底部的电邮联系)
Android AlarmManager实现多个闹钟后如何简洁地全部统一修改?~

下是我在做日程管理小项目时写的一段代码
Intent intent=new Intent(TimeSetActivity.this,AlarmReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast(TimeSetActivity.this, _id , intent, 0); //将从数据库中查询得到的_id值作为第二个参数,以此来区分闹钟(因为每一条日程信息在数据库中都对应着唯一的_id号,用它来区分闹钟我认为最为合适了)。

AlarmManager am = (AlarmManager) getSystemService(Activity.ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pi);//设置闹铃



Intent i=new Intent(TimeSetActivity.this,AlarmReceiver.class);
PendingIntent pi = PendingIntent.getBroadcast(TimeSetActivity.this, _id , intent, 0);
am.cancel(pi);//取消闹钟

在下一次闹钟响起之前你要先关闭音乐啊。

AlarmManager只能设置一个定时闹钟和一个重复闹钟。后面设置的闹钟会覆盖前面的。
这种情况是需要你自己去计算的,也就是说,你需要计算你多个闹钟里哪个闹钟最近,然后设置到AlarmManager中。
处理的情况可能有点多:
1.如果用户新建或编辑了闹钟,要进行一次判断,判断哪个最近,再设置一次。
2.闹钟响过后,要马上重新算一次,再设置到AlarmManager。
3.用户关机的情况,很多手机是不支持关机闹钟的,考虑到这个要在手机开机的时候再去算一次。
4.两个闹钟如果时间一致,那么只可能响一个,尽可能避免设置重复闹钟。


红原县19265164283: 用AlarmManager实现定时发短信,只能设置1分钟的重复? -
宣蕊盐酸: 你可以看看AlarmManager 都有比较详细的解释 有设置一次性闹铃的 也有设置重复的 至于过去的时间会立马执行 可以进行判断如果时间已经过去要进行+一天的操作

红原县19265164283: 设置多个AlarmManager,可修改指定的AlarmManager -
宣蕊盐酸: AlarmManager只能设定一个任务.如果重复设定,之前设定的会被后一个覆盖.要实现多个定时任务,惟有自己程序处理了.就是只设置一个,在这一个到来时再去计算下一个最近的任务,添加进AlarmManager.逻辑就是这样.只有一个定时任务,就不需要啥对应了.每次删除和修改后,重新计算一下最近的一个任务,重新设定最近的任务.

红原县19265164283: alarmManager关机再开机后还有效吗 -
宣蕊盐酸: AlarmManager只能设置一个定时闹钟和一个重复闹钟.后面设置的闹钟会覆盖前面的.这种情况是需要你自己去计算的,也就是说,你需要计算你多个闹钟里哪个闹钟最近,然后设置到AlarmManager中.处理的情况可能有点多:1.如果用户新建或编辑了闹钟,要进行一次判断,判断哪个最近,再设置一次.2.闹钟响过后,要马上重新算一次,再设置到AlarmManager.3.用户关机的情况,很多手机是不支持关机闹钟的,考虑到这个要在手机开机的时候再去算一次.4.两个闹钟如果时间一致,那么只可能响一个,尽可能避免设置重复闹钟.

红原县19265164283: n73的闹铃工具在哪里下?
宣蕊盐酸: http://game.3533.com/20061110/uploadfile/2006/7/21/15421017232.sis 智能闹钟AlarmManager是一个小巧而又简单的可以设定多个闹钟的时间管理软件.支持闹钟重复每日、工作日或者是指定一天以周为周期重复,软件可以自定义提示信息.并且支持关机闹钟~ N73用的智能闹钟,可以设置8-10个闹钟. 在安装的过程中可能会提示与手机不兼容,不管他继续安装就好~ 输入任意5位注册码便可实现注册,如12345,就可以注册成功.

红原县19265164283: Android关于闹钟程序,如何定时? -
宣蕊盐酸: 把times参数换成“周一的几点“到现在的时间间隔,就可以实现周一的几点响闹钟了

红原县19265164283: Android AlarmManager实现多个闹钟后如何简洁地全部统一修改? -
宣蕊盐酸: 下是我在做日程管理小项目时写的一段代码 Intent intent=new Intent(TimeSetActivity.this,AlarmReceiver.class); PendingIntent pi = PendingIntent.getBroadcast(TimeSetActivity.this, _id , intent, 0); //将从数据库中查询得到的_id值作为第二个参数...

红原县19265164283: 如何判断一个alarm是否已经被创建 -
宣蕊盐酸: 首先是创建一个重复的Alarm:long nextMillis = System.currentTimeMillis() + 1000; AlarmManager alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); Intent intent = new Intent(context, CoreService.class); intent....

红原县19265164283: broadcast类中可以更新activity界面的值吗?
宣蕊盐酸: 类似于这种,写在你的Activity里面就ok了啊,,Activity关闭的时候取消注册就可以了,你要根据广播更新Activity的界面,,界面退出了也就不需要更新了BroadcastReceiver mReceiver = new BroadcastReceiver(){ @Override public void onReceive(Context context, Intent intent) { } }; IntentFilter filter = new IntentFilter("android.intent.xxx"); this.registerReceiver(mReceiver, filter);

红原县19265164283: n70的闹钟怎样才能不用每天设置 -
宣蕊盐酸: 去下载一个智能闹钟.不过不好用的感觉,,因为他不支持关机闹钟,如果你不关机睡觉,可以下载一下来用一下..或者下载一个掌中时空..这个软件也不错.如果你不分礼拜天,可以用日历来设闹钟,不好的地方就是,,星期六,星期天也会闹..

红原县19265164283: android 守护进程 -
宣蕊盐酸: 可以通过AlarmManager来不断启动,在程序的主Activity里面启动一个Service,然后每当系统由于资源问题杀死用户的CoreService服务时,onDestroy方法都会被调用到,通过AlarmManager来设置5秒钟重新启动这个服务. public class ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网