Android 实现一次性闹钟和周期性闹钟
来源:互联网 发布:翼支付显示网络异常 编辑:程序博客网 时间:2024/04/30 03:48
平时我们能够早早的起床,全靠一个起床神器,“闹钟”,而且有的闹钟就是变态型的,现在我就写一个简单的闹钟吧!
一、一次性闹钟:指的是在你预期定好的时间的时候闹钟开始响,注意定闹钟时间只能是当前时间之后。
1、写一个简单的按钮,写一个事件setAlarm
<Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="设置闹钟(一次)" android:onClick="setAlarm" />
2、接下来就要实现这个功能了,同时在onCreate方法中得到闹钟管理者
//获取闹钟管理者 alarmManager =(AlarmManager)getSystemService(Context.ALARM_SERVICE);
public void setAlarm(View view){ //获取当前系统的时间 Calendar calendar=Calendar.getInstance(); int hour=calendar.get(Calendar.HOUR_OF_DAY); int minute=calendar.get(Calendar.MINUTE); //弹出时间对话框 TimePickerDialog timePickerDialog=new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker timePicker, int i, int i1) { Calendar c=Calendar.getInstance(); c.set(Calendar.HOUR_OF_DAY,i); c.set(Calendar.MINUTE,i1); Intent intent=new Intent(); intent.setAction("com.example.cloakandnotifaction.shuting"); //将来时态的跳转 PendingIntent pendingIntent=PendingIntent.getBroadcast(MainActivity.this,0x101,intent,0); //设置闹钟 alarmManager.set(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),pendingIntent); //时间一到,发送广播(闹钟响了)//广播接受者中(跳转Activity)// 跳转Activity,在这个Activity中播放音乐 } },hour,minute,true); **timePickerDialog.show();** }
3、当设置的时间到了的时候,跳转一个Activity,同时播放闹钟音乐
<TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="咯咯咯、咯咯咯、该起床了!!!" android:textSize="30sp" /> <Button android:layout_width="match_parent" android:layout_height="wrap_content" android:text="停止" android:onClick="stop" />
4、接收广播
public class RingReceived extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if("com.example.cloakandnotifaction.shuting".equals(intent.getAction())){ Log.i("test","闹钟作死的响了。。"); //跳转到Activity Intent intent1=new Intent(context,RingActivity.class); //给Intent设置标志位 intent1.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent1); } }
5、实现播放闹钟音乐的功能
private MediaPlayer mediaPlayer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_ring); mediaPlayer = MediaPlayer.create(this, R.raw.rooster); mediaPlayer.start(); } public void stop(View view){ mediaPlayer.stop(); finish(); }
6、再次涉及到了广播,所以要在清单文件里配置
**<receiver android:name=".RingReceived"> <intent-filter> <action android:name="com.example.cloakandnotifaction.shuting"></action> </intent-filter> </receiver>**
二、周期性闹钟和一次性闹钟差不多,多了一个long类型的参数
public void setAlarmCycle(View view){ //获取当前系统的时间 Calendar calendar=Calendar.getInstance(); int hour=calendar.get(Calendar.HOUR_OF_DAY); int minute=calendar.get(Calendar.MINUTE); //弹出时间对话框 TimePickerDialog timePickerDialog=new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() { @Override public void onTimeSet(TimePicker timePicker, int i, int i1) { Calendar c=Calendar.getInstance(); c.set(Calendar.HOUR_OF_DAY,i); c.set(Calendar.MINUTE,i1); Intent intent=new Intent(); intent.setAction("com.example.cloakandnotifaction.shuting"); //将来时态的跳转 ang eng ing ong pendingIntent = PendingIntent.getBroadcast(MainActivity.this,0x101,intent,0); //设置周期闹钟 alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,c.getTimeInMillis(),5000, pendingIntent); //时间一到,发送广播(闹钟响了) //广播接受者中(跳转Activity) // 跳转Activity,在这个Activity中播放音乐 } },hour,minute,true); timePickerDialog.show(); }
这样就可以实现一个简单闹钟了,喜欢睡懒觉的同志们可以自己写一个,天天叫自己起床了哦!
2 0
- Android 实现一次性闹钟和周期性闹钟
- 一次性闹钟和周期性闹钟
- Android-闹钟(单次闹钟and周期性闹钟)
- Android 通过AlarmManager实现单次闹钟和周期闹钟
- Android闹钟的实现!
- Android闹钟的实现!
- android 闹钟的实现
- Android AlarmManager闹钟实现
- Android独立闹钟实现
- android闹钟实现原理
- Android闹钟实现原理
- android闹钟实现原理
- Android关机闹钟实现
- Android Service实现闹钟
- Android简易闹钟实现
- Android 闹钟实现
- Android之实现闹钟
- Android实现-闹钟-通知
- ViewPager+Fragment取消预加载(实现只加载一页的效果)
- 自定义可圆形移动的view
- C++中 vector可使用的函数和使用方式
- ORACLE数据类型之FLOAT
- 线程数究竟设多少合理
- Android 实现一次性闹钟和周期性闹钟
- linux驱动-内核中的数据类型
- php常见知识(一)
- 固态硬盘SSD Read Retry的测试方法
- checkbox显示为checked="checked"但是不显示选中状态
- MySql的binlog日志操作(一)
- 单点系统架构的可用性与性能优化
- PCL-1.8.0-AllInOne-msvc2013-win32 详细配置教程
- Android 通过AlarmManager实现单次闹钟和周期闹钟