Android开发实例之闹钟提醒

本实例通过TimePickerDialog时间选择对话框让用户设置闹钟。并通过AlarmManager全局定时器在指定的时间启动闹钟Activity

程序执行效果图:

实例代码:

package com.jph.alarm.test;

import java.util.Calendar;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.Service;
import android.app.TimePickerDialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TimePicker;
import android.widget.Toast;
/**
 * Describe:</br>
 * </br>简单闹钟提醒
 * </br>本实例通过TimePickerDialog时间选择对话框
 * </br>让用户设置闹钟并通过AlarmManager全局定时器
 * </br>在指定的时间启动闹钟Activity
 * </br>@author jph
 * </br>Date:2014.07.29
 * */
public class AlarmTest extends Activity
{
	Button setTime;
	AlarmManager aManager;
	Calendar currentTime = Calendar.getInstance();

	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		// 获取程序界面的button
		setTime = (Button) findViewById(R.id.setTime);
		// 获取AlarmManager对象
		aManager = (AlarmManager) getSystemService(
			Service.ALARM_SERVICE);
		// 为“设置闹铃”button绑定监听器。

setTime.setOnClickListener(new OnClickListener()
		{
			@Override
			public void onClick(View source)
			{
				Calendar currentTime = Calendar.getInstance();
				// 创建一个TimePickerDialog实例,并把它显示出来。
				new TimePickerDialog(AlarmTest.this, 0, // 绑定监听器
					new TimePickerDialog.OnTimeSetListener()
					{
						@Override
						public void onTimeSet(TimePicker tp,
							int hourOfDay, int minute)
						{
							// 指定启动AlarmActivity组件
							Intent intent = new Intent();
							intent.setAction("com.jph.alarm.test.ACTION");
							// 创建PendingIntent对象
							PendingIntent pi = PendingIntent.getActivity(
								AlarmTest.this, 0, intent, 0);
							Calendar c = Calendar.getInstance();
							// 依据用户选择时间来设置Calendar对象
							c.set(Calendar.HOUR_OF_DAY, hourOfDay);
							c.set(Calendar.MINUTE, minute);
							// 设置AlarmManager将在Calendar相应的时间启动指定组件
							aManager.set(AlarmManager.RTC_WAKEUP,
								c.getTimeInMillis(), pi);
							// 显示闹铃设置成功的提示信息
							Toast.makeText(AlarmTest.this, "闹铃设置成功啦"
								, Toast.LENGTH_SHORT).show();
						}
					}, currentTime.get(Calendar.HOUR_OF_DAY), currentTime
						.get(Calendar.MINUTE), false).show();
			}
		});
	}
}
package com.jph.alarm.test;

import java.util.Calendar;
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.Service;
import android.app.TimePickerDialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TimePicker;
import android.widget.Toast;
/**
 * Describe:</br>
 * </br>简单闹钟提醒
 * </br>本实例通过TimePickerDialog时间选择对话框
 * </br>让用户设置闹钟并通过AlarmManager全局定时器
 * </br>在指定的时间启动闹钟Activity
 * </br>@author jph
 * </br>Date:2014.07.29
 * */
public class AlarmTest extends Activity
{
	Button setTime;
	AlarmManager aManager;
	Calendar currentTime = Calendar.getInstance();

	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		// 获取程序界面的button
		setTime = (Button) findViewById(R.id.setTime);
		// 获取AlarmManager对象
		aManager = (AlarmManager) getSystemService(
			Service.ALARM_SERVICE);
		// 为“设置闹铃”button绑定监听器。
		setTime.setOnClickListener(new OnClickListener()
		{
			@Override
			public void onClick(View source)
			{
				Calendar currentTime = Calendar.getInstance();
				// 创建一个TimePickerDialog实例,并把它显示出来。

new TimePickerDialog(AlarmTest.this, 0, // 绑定监听器
					new TimePickerDialog.OnTimeSetListener()
					{
						@Override
						public void onTimeSet(TimePicker tp,
							int hourOfDay, int minute)
						{
							// 指定启动AlarmActivity组件
							Intent intent = new Intent();
							intent.setAction("com.jph.alarm.test.ACTION");
							// 创建PendingIntent对象
							PendingIntent pi = PendingIntent.getActivity(
								AlarmTest.this, 0, intent, 0);
							Calendar c = Calendar.getInstance();
							// 依据用户选择时间来设置Calendar对象
							c.set(Calendar.HOUR_OF_DAY, hourOfDay);
							c.set(Calendar.MINUTE, minute);
							// 设置AlarmManager将在Calendar相应的时间启动指定组件
							aManager.set(AlarmManager.RTC_WAKEUP,
								c.getTimeInMillis(), pi);
							// 显示闹铃设置成功的提示信息
							Toast.makeText(AlarmTest.this, "闹铃设置成功啦"
								, Toast.LENGTH_SHORT).show();
						}
					}, currentTime.get(Calendar.HOUR_OF_DAY), currentTime
						.get(Calendar.MINUTE), false).show();
			}
		});
	}
}

AndroidManifest.xml

<?

xml version="1.0" encoding="utf-8"?

>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
	package="com.jph.alarm.test"
	android:versionCode="1"
	android:versionName="1.0">
	<uses-sdk
		android:minSdkVersion="7"
		android:targetSdkVersion="18" />
	<application android:icon="@drawable/ic_launcher" android:label="@string/app_name">
		<activity android:name=".AlarmTest"
				android:label="@string/app_name">
			<intent-filter>
				<action android:name="android.intent.action.MAIN" />
				<category android:name="android.intent.category.LAUNCHER" />
			</intent-filter>
		</activity>
		<activity android:name=".AlarmActivity">
		    <intent-filter>
			    <action android:name="com.jph.alarm.test.ACTION"/>
			    <category android:name="android.intent.category.DEFAULT"></category>
			</intent-filter>
		</activity>
	</application>

</manifest> 
时间: 2024-08-09 23:53:41

Android开发实例之闹钟提醒的相关文章

Android开发实例之miniTwitter登录界面的实现

原文: http://www.jizhuomi.com/android/example/134.html 本文要演示的Android开发实例是如何完成一个Android中的miniTwitter登录界面,下面将分步骤讲解怎样实现图中的界面效果,让大家都能轻松的做出美观的登录界面. miniTwitter登录界面效果图 先贴上最终要完成的效果图: miniTwitter登录界面的布局分析 首先由界面图分析布局,基本可以分为三个部分,下面分别讲解每个部分. 第一部分是一个带渐变色背景的LinearL

Android开发实例之多点触控程序

智能终端设备的多点触控操作为我们带来了种种炫酷体验,这也使得很多Android开发者都对多点触控程序的开发感兴趣.实际上多点触控程序的实现并不是那么遥不可及,而是比较容易.本文就主要通过一个实例具体讲解多点触控程序的实现. 首先来了解一下Android中多点触控的原理. Android多点触控在本质上需要LCD驱动和程序本身设计上支持,目前市面上HTC.Motorola和Samsung等知名厂商只要使用电容屏触控原理的手机均可以支持多点触控Multitouch技术,对于网页缩放.手势操作上有更好

android for vs (二)visual studio android 开发实例

android for vs (一)visual studio android 开发实例 相关 vs 的 android 开发环境安装配置可以看我的前一篇文章 这里使用 vs2010 自带的实例进行开发与调试 一.新建项目 文件 -> 新建 -> 项目,我们选择Blank App(Android)项目,如下图 二.项目目录结构 1)AndroidManifest.xml 项目配置描述文件,项目名.图标.运行程序需要的权限都可以在这里声明 2)Main.axml 界面布局及元素定义文件 3)Ma

配置好的android开发环境 带实例---Android 开发实例教程一

一.版本说明 JDK:jdk1.7.0_15 ADT:v22.3.0-887826 已经配置好的开发环境(jdk1.7+adt22+api19+eclipse4.2.1)平台,打开即可用,同时workspace已经存在可以直接运行的实例(仿美团.淘宝格式). 真真的方便快捷. 二.下载地址 链接:http://pan.baidu.com/s/1bcy7O 密码:mo8a  好用别忘点赞,方便大家使用 三.配置说明 1.adt-bundle-windows-x86-20131030 解压到D盘根目

Android开发实例透明效果设置方法

没什么android开发经验的朋友来说,实现透明效果是有一定难度的,我看见麦子学院android开发视频上面讲了三种方法来实现透明效果,这三种方法非常不错,嘿嘿,就抄下来分享给大家. 1.设置alpha View v = findViewById(R.id.content);/到你要设透明背景的layout 的id  v.getBackground().setAlpha(100);//0~255透明度值  2.用ARGB来控制 半透明<Button android:background="

Android开发实例-健康食谱应用(一)

转载请注明出处:http://blog.csdn.net/einarzhang/article/details/44774635 本系列文章的重点是如何使用Android开发一个简单的健康食谱软件.使用了以下相关技术中见例如: 提供GridView和ListView的基本使用 利用universal-image-loader异步载入网络图片 通过HttpClient获取网络http请求数据 滑动分页载入数据 软件所用的全部数据均来源于http://doc.yi18.net/cookwendang

Android开发实例总结

写一个修改密码的界面 1画界面总结: 需要弄清楚什么地方用相对布局,什么地方使用线性布局 希望这过后自己花时间去弄清楚他们内嵌的的所有组件以及组件的属性包括用法. 2逻辑总结: 逻辑描述总是那么几步的,我之前看老师给的例子我是慢慢看懂了一点,但是我总觉得差点什么东西.我欠一个彻底弄清楚,我肯定可以的. 3思想总结: 我认为我可以的.开发安卓,尽管我现在还是刚刚起步,我似乎和它有一种似曾相识的熟悉感.或许这个就是缘分.我不可以放弃Android开发."世界上最忠诚的就是自然界的物,只要你想他,他就

Android开发实例-自动生成题库的数独(一)

转载请注明出处:http://blog.csdn.net/einarzhang/article/details/44834259 本系列文章主要介绍如何利用Android开发一个自动生成题目的数独游戏.涉及的知识和技术如下所示: 挖洞算法自动生成数独题目 实现自定义View用于绘制数独盘 数据库的基本操作 看着市场上千篇一律的数独应用,他们大都来自于同一个开源应用,题目都是固定不变的那么100多道.我们就没有方法改变数独题目吗?经过百度搜索,终于找到了一篇自动生成数独题库的算法,感谢原作者的理论

Android开发实例-健康食谱应用(二)

转载请注明出处:http://blog.csdn.net/einarzhang/article/details/44806975 本系列文章主要介绍如何利用Android开发一个简单的健康食谱软件.用到的相关技术如下所示: 提供GridView和ListView的基本使用 利用universal-image-loader异步加载网络图片 通过HttpClient获取网络http请求数据 滑动分页加载数据 软件所用的所有数据均来源于http://doc.yi18.net/cookwendang提供