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

时间:2022-01-26 22:36:18
 我做的是智能家居(窗帘方面)。每个按钮都相当于一个窗帘的设定。都会跳转到同一个界面,即图二。现在的问题是我要给每个窗帘添加一个定时闹钟,到时候发送广播。但是,我设定的多个闹钟只会响应一个。麻烦大家帮我看看哪里出现错误了,指导指导小弟。 安卓设定多个闹钟 怎么实现
安卓设定多个闹钟 怎么实现
第一张图的那六个按钮点击的事件: 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);
}这是点击按钮确定触发的事件

12 个解决方案

#1


顶,到底是哪里出错了啊

#2


好快就沉了啊。。

#3


该回复于2014-08-11 08:47:10被管理员删除

#4


该回复于2014-08-11 08:59:17被管理员删除

#5


感觉csdn这方面热心的高手少了很多!!

#6


你没设置星期几啊

#7


帮你顶下,最近也在看AlartManager 安卓设定多个闹钟 怎么实现

#8


引用 5 楼 u010781408 的回复:
感觉csdn这方面热心的高手少了很多!!
 我也觉得·

#9


引用 6楼1148415714 的回复:
你没设置星期几啊
这个我设置了的 你注意看我那个设置时间的timepicker里 安卓设定多个闹钟 怎么实现

#10


引用 7楼small5e4444 的回复:
帮你顶下,最近也在看AlartManager 安卓设定多个闹钟 怎么实现
安卓设定多个闹钟 怎么实现没想到这么久的问题都挖出来了。问题当时解决了,记得好像就是换了两个语句的位置然后就好了。给朋友运行 隔天定时的服务也启动了

#11


引用 8楼我是猴子 的回复:
Quote: 引用 5 楼 u010781408 的回复:

感觉csdn这方面热心的高手少了很多!!
 我也觉得·
哈哈  大家伙都有事做 可能比较忙吧。像我新浪博客关注的农民伯伯也很久没开技术贴了。。。

#12


int FLAG_UPDATE_CURRENT:如果该PendingIntent已经存在,则用新传入的Intent更新当前的数据。

#1


顶,到底是哪里出错了啊

#2


好快就沉了啊。。

#3


该回复于2014-08-11 08:47:10被管理员删除

#4


该回复于2014-08-11 08:59:17被管理员删除

#5


感觉csdn这方面热心的高手少了很多!!

#6


你没设置星期几啊

#7


帮你顶下,最近也在看AlartManager 安卓设定多个闹钟 怎么实现

#8


引用 5 楼 u010781408 的回复:
感觉csdn这方面热心的高手少了很多!!
 我也觉得·

#9


引用 6楼1148415714 的回复:
你没设置星期几啊
这个我设置了的 你注意看我那个设置时间的timepicker里 安卓设定多个闹钟 怎么实现

#10


引用 7楼small5e4444 的回复:
帮你顶下,最近也在看AlartManager 安卓设定多个闹钟 怎么实现
安卓设定多个闹钟 怎么实现没想到这么久的问题都挖出来了。问题当时解决了,记得好像就是换了两个语句的位置然后就好了。给朋友运行 隔天定时的服务也启动了

#11


引用 8楼我是猴子 的回复:
Quote: 引用 5 楼 u010781408 的回复:

感觉csdn这方面热心的高手少了很多!!
 我也觉得·
哈哈  大家伙都有事做 可能比较忙吧。像我新浪博客关注的农民伯伯也很久没开技术贴了。。。

#12


int FLAG_UPDATE_CURRENT:如果该PendingIntent已经存在,则用新传入的Intent更新当前的数据。