安卓设定多个闹钟 怎么实现

fly_above_sky 2014-08-10 02:04:00
我做的是智能家居(窗帘方面)。每个按钮都相当于一个窗帘的设定。都会跳转到同一个界面,即图二。现在的问题是我要给每个窗帘添加一个定时闹钟,到时候发送广播。但是,我设定的多个闹钟只会响应一个。麻烦大家帮我看看哪里出现错误了,指导指导小弟。

第一张图的那六个按钮点击的事件: startAvtivity(new Intent(Chuanglian.this,Settime.class),都是进入这个activity

public class Settime extends Activity implements OnClickListener {
String address;// 定义变量address,存储socket通信连接的ip地址
int nport;// 定义变量nport,存储socket通信连接的端口号
int which;
SharedPreferences pre_set;
int progress_set;
SharedPreferences.Editor edito
Calendar c = Calendar.getInstance();
AlarmManager aManager1;
//***************以上是下面要用到的变量的创建*********************************

//*****************************我利用timepicker来获取要设定的时间
timepicker.setOnTimeChangedListener(new OnTimeChangedListener() {
public void onTimeChanged(TimePicker view, int hourOfDay, int minute) {
// TODO Auto-generated method stub
String hour, minutes = null, message;
c.setTimeInMillis(System.currentTimeMillis());
c.set(Calendar.HOUR_OF_DAY, hourOfDay);
c.set(Calendar.MINUTE, minute);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);

}

});这是通过timepicker来确定闹钟时间。
//*******************************************这是点击设定按钮触发的事件************************************
case R.id.button_set: {
Intent intent = new Intent(Settime.this, MyReceiver.class);
intent.putExtra("address", address);
intent.putExtra("nport", nport);
intent.putExtra("用户设定的窗帘状态", progress_set);
intent.putExtra("progress", Chuanglian.lastProgress);
intent.putExtra("控制周的循环", array);
PendingIntent pi = null;
switch (which) {
//这个which是判断哪个按钮点击而启动该activity.对应的,case1,第一个按钮点击之后设置的闹钟。case2,第二个按钮点击之后设置的闹钟。以此类推
case 1:
pi = PendingIntent.getBroadcast(Settime.this,1,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
break;
case 2:
pi = PendingIntent.getBroadcast(Settime.this,2,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
break;
case 3:
pi = PendingIntent.getBroadcast(Settime.this,3,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
break;
case 4:
pi = PendingIntent.getBroadcast(Settime.this,4,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
break;
case 5:
pi = PendingIntent.getBroadcast(Settime.this,5,
intent, PendingIntent.FLAG_UPDATE_aaaCURRENT);
break;
case 6:
pi = PendingIntent.getBroadcast(Settime.this,6,
intent, PendingIntent.FLAG_UPDATE_CURRENT);
break;
}

// 设置AlarmManager将在对应的时间启动
// 如果设定的时间早于当前时间,则往后移一天。
long time = c.getTimeInMillis();
System.out.println(which);
Calendar nowTime = Calendar.getInstance();
long time1 = nowTime.getTimeInMillis();// 当前时间
if (time < time1)
time += 3600 * 24 * 1000;
aManager1.setRepeating(AlarmManager.RTC_WAKEUP, time,
3600 * 1000 * 24, pi);

Toast.makeText(Settime.this, "定时成功", Toast.LENGTH_LONG).show();
Intent intent2 = new Intent(Settime.this, Chuanglian.class);
intent2.putExtra("which", which);
startActivity(intent2);
}这是点击按钮确定触发的事件
...全文
922 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
吕冲 2015-11-20
  • 打赏
  • 举报
回复
int FLAG_UPDATE_CURRENT:如果该PendingIntent已经存在,则用新传入的Intent更新当前的数据。
fly_above_sky 2015-08-26
  • 打赏
  • 举报
回复
引用 8楼我是猴子 的回复:
引用 5 楼 u010781408 的回复:
感觉csdn这方面热心的高手少了很多!!
我也觉得·
哈哈 大家伙都有事做 可能比较忙吧。像我新浪博客关注的农民伯伯也很久没开技术贴了。。。
fly_above_sky 2015-08-26
  • 打赏
  • 举报
回复
引用 7楼small5e4444 的回复:
帮你顶下,最近也在看AlartManager
没想到这么久的问题都挖出来了。问题当时解决了,记得好像就是换了两个语句的位置然后就好了。给朋友运行 隔天定时的服务也启动了
fly_above_sky 2015-08-26
  • 打赏
  • 举报
回复
引用 6楼1148415714 的回复:
你没设置星期几啊
这个我设置了的 你注意看我那个设置时间的timepicker里
我是猴子 2015-08-25
  • 打赏
  • 举报
回复
引用 5 楼 u010781408 的回复:
感觉csdn这方面热心的高手少了很多!!
我也觉得·
small5e4444 2015-08-25
  • 打赏
  • 举报
回复
帮你顶下,最近也在看AlartManager
聆听美 2015-06-11
  • 打赏
  • 举报
回复
你没设置星期几啊
  • 打赏
  • 举报
回复
感觉csdn这方面热心的高手少了很多!!
fly_above_sky 2014-08-10
  • 打赏
  • 举报
回复
好快就沉了啊。。
fly_above_sky 2014-08-10
  • 打赏
  • 举报
回复
顶,到底是哪里出错了啊

80,337

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧