3.1 activity_main
TimePicker控件的使用同DataPicker控件的使用类似,这里选择的是时分秒,这里我们定义一个按钮,用于设置闹钟,点击该按钮后将选择的时间设置为闹钟时间,到了时间后进入另一个活动中(闹钟界面)。这里主要介绍一下AlarmManager,它属于系统服务,通过
AlarmManager manager= (AlarmManager) getSystemService(ALARM_SERVICE);获取,获取之后通过set方法对其进行设置,该方法需要传递三个参数,第一个是闹钟类型,含义如下:
闹钟类型 |
---|
AlarmManager.RTC:硬件时间,不唤醒休眠设备;当休眠时不发起闹钟。 |
AlarmManager.RTC_WAKEUP:硬件时间,当闹钟发射时唤醒休眠设备; |
AlarmManager.ELAPSED_REALTIME:真实时间流逝,不唤醒休眠设备;当设备休眠时不发起闹钟。 |
AlarmManager.ELAPSED_REALTIME_WAKEUP:真实时间流逝,当闹钟发起时唤醒手机休眠; |
第二个参数为闹钟第一次执行时间,毫秒为单位,这里将刚刚设置的Calendar时间传递进去,第三个参数为PendingIntent对象。PendingIntent可以看作是对Intent的一个封装,但它不是立刻执行某个行为,而是满足某些条件或触发某些事件后才执行指定的行为(启动特定Service,Activity,BrcastReceive)。这里定义的PendingIntent用于触发活动间的跳转,使其到达设置时间后跳转到闹钟页面。
在闹钟页面则是一个简单的Dialog提示,完整代码如下:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TimePicker
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:id="@+id/pick"