TimerPickerDialog 中 onTimeSet 执行两次的问题
2024-09-15 22:08:53
开发android小闹钟的程序时,在添加闹钟时闹钟列表中总是出现两个相同的闹钟。
btnAddAlarm.setOnClickListener(new View.OnClickListener() { @Override
public void onClick(View v) {
if(tpd == null){
addAlarm();
} tpd.show();
}
});
private void addAlarm() { TimePickerDialog.OnTimeSetListener otsl = new OnTimeSetListener() { @Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
Calendar setTime = Calendar.getInstance();
setTime.set(Calendar.HOUR_OF_DAY, hourOfDay);
setTime.set(Calendar.MINUTE, minute);
setTime.set(Calendar.SECOND,0);
setTime.set(Calendar.MILLISECOND, 0); Calendar currentTime = Calendar.getInstance(); if (setTime.getTimeInMillis() <= currentTime.getTimeInMillis()) {
setTime.setTimeInMillis(setTime.getTimeInMillis()+ 24 * 60 * 60 * 1000);
} adapter.add(new AlarmData(setTime.getTimeInMillis())); alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
setTime.getTimeInMillis(), 5 * 60 * 1000,
PendingIntent.getBroadcast(getContext(),
new AlarmData(setTime.getTimeInMillis()).getId(),
new Intent(getContext(),
AlarmReceiver.class), 0)); saveAlarmList(); }
}; Calendar c = Calendar.getInstance();
int hourOfDay = c.get(Calendar.HOUR_OF_DAY);
int min = c.get(Calendar.MINUTE);
tpd = new TimePickerDialog(getContext(), otsl, hourOfDay, min, true);
}
刚开始以为是adapter的问题,于是在初始化函数中加了添加闹钟的代码,结果只有一个闹钟。最后确定是TimePickerDialog的问题,上网查找才知道这是android4.1和4.2的bug,需要重写TimePickerDialog中的onStop方法,把onStop()中super.onStop()注释掉就行了
tpd = new TimePickerDialog(getContext(), otsl, hourOfDay, min, true){
@Override
protected void onStop() {
//super.onStop();
}
};
最新文章
- Pattern Recognition for Cell-free DNA - Github
- ListCtrl接受拖动文件
- 讲讲你不知道的 ARC (一)
- hibernate 打印sql和参数的配置
- ffmpeg学习笔记
- 3-Dom
- MySQL中变量的总结
- HDU2504-又见GCD-递归
- solaris启动过程详解
- Java进阶(十七)ArrayList与LinkedList的区别
- Sentinel 流程分析
- vs2005设置打开文件和保存文件编码
- Excel-VBA入门(1): 基础 / 变量 /for / if/ 调试
- 51 Nod 1240 莫比乌斯函数
- 单片机成长之路(51基础篇) - 002 STC单片机冷启动和复位有什么区别
- spring boot 之 spring task(定时任务)
- Caffe源码中caffe.proto文件分析
- HDU 1711Number Sequence【KMP模板题】
- 分享一个Panda C-60 维修心得
- docker使用web界面管理Registry
热门文章
- docker swarm+register-web+shipyard搭建
- HDU 4247 Pinball Game 3D(cdq 分治+树状数组+动态规划)
- HOJ 2139 Spiderman's workout(动态规划)
- poj1584 A round peg in a ground hole【计算几何】
- Spring - Bean Definition Bean定义 给容易提供元数据的3方法
- Linux下的pure-ftp的安装详解
- day08:软件系统的体系结构&Tomcat详解&Web应用&http协议
- (1.1)DML增强功能-CTE
- Openstack(三)Haproxy+Keepalived双机
- [py]类属性和实例属性