Android之手机闹钟

一、开发手机闹钟主要用到了AlarmManager类,AlarmManager类提供了访问系统定时服务的途径,开发人员可以在程序中设置某个应用程序在未来的某个时刻被执行。当AlarmManager定时时间到了之后,当初注册的Intent对象将会被系统广播,进而启动目标程序。

二、在程序运行时当需要使用AlarmManager类时,可以通过Context对象的getSystemService(Context.ALARM_SERVICE)方法来获得AlarmManager对象。

以下程序中使用时间选择对话框设置闹钟的时间。

main.xml布局文件

   
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:layout_width="fill_parent"android:layout_height="fill_parent"><Button android:id="@+id/btn" android:text="设置闹钟"android:layout_width="fill_parent"android:layout_height="wrap_content" /> </LinearLayout>

清单文件

   
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"package="com.ljq.activity" android:versionCode="1"android:versionName="1.0"><application android:icon="@drawable/icon"android:label="@string/app_name"><activity android:name=".MainActivity"android:label="@string/app_name"><intent-filter><action android:name="android.intent.action.MAIN" /><categoryandroid:name="android.intent.category.LAUNCHER" /></intent-filter></activity><activity android:name=".AlarmActivity" /><!-- android:process=":remote": 新开一个进程 --><receiver android:name=".AlarmReceiver" android:process=":remote"/></application><uses-sdk android:minSdkVersion="7" /> </manifest>

AlarmReceiver类

   
package com.ljq.activity;import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent;public class AlarmReceiver extends BroadcastReceiver{@Overridepublic void onReceive(Context context, Intent intent) {Intent i=new Intent(context, AlarmActivity.class);i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startActivity(i);} }

AlarmActivity类

   
package com.ljq.activity;import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.os.Bundle;public class AlarmActivity extends Activity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);//显示对话框 new AlertDialog.Builder(AlarmActivity.this).setTitle("闹钟").//设置标题 setMessage("时间到了!").//设置内容 setPositiveButton("知道了", new OnClickListener(){//设置按钮 public void onClick(DialogInterface dialog, int which) {AlarmActivity.this.finish();//关闭Activity }}).create().show();}}

MainActivity类

   
package com.ljq.activity;import java.util.Calendar;import android.app.Activity; import android.app.AlarmManager; import android.app.Dialog; import android.app.PendingIntent; import android.app.TimePickerDialog; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TimePicker; import android.widget.Toast;public class MainActivity extends Activity{private Button btn=null;private AlarmManager alarmManager=null;Calendar cal=Calendar.getInstance();final int DIALOG_TIME = 0; //设置对话框id @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);alarmManager=(AlarmManager)getSystemService(Context.ALARM_SERVICE);btn=(Button)findViewById(R.id.btn);btn.setOnClickListener(new View.OnClickListener(){public void onClick(View view) {showDialog(DIALOG_TIME);//显示时间选择对话框 }});}@Overrideprotected Dialog onCreateDialog(int id) {Dialog dialog=null;switch (id) {case DIALOG_TIME:dialog=new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener(){public void onTimeSet(TimePicker timePicker, int hourOfDay,int minute) {Calendar c=Calendar.getInstance();//获取日期对象 c.setTimeInMillis(System.currentTimeMillis()); //设置Calendar对象 c.set(Calendar.HOUR, hourOfDay); //设置闹钟小时数 c.set(Calendar.MINUTE, minute); //设置闹钟的分钟数 c.set(Calendar.SECOND, 0); //设置闹钟的秒数 c.set(Calendar.MILLISECOND, 0); //设置闹钟的毫秒数 Intent intent = new Intent(MainActivity.this, AlarmReceiver.class); //创建Intent对象 PendingIntent pi = PendingIntent.getBroadcast(MainActivity.this, 0, intent, 0); //创建PendingIntent//alarmManager.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), pi); //设置闹钟 alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), pi); //设置闹钟,当前时间就唤醒 Toast.makeText(MainActivity.this, "闹钟设置成功", Toast.LENGTH_LONG).show();//提示用户 }}, cal.get(Calendar.HOUR_OF_DAY), cal.get(Calendar.MINUTE),false);break;}return dialog;} }

运行结果

Android之手机闹钟相关推荐

  1. android闹钟app,安卓手机闹钟软件谁最好?四款安卓闹钟软件横评

    小编今天为您带来四款安卓手机闹钟软件横评,希望可以为您参考,找到适合自己的闹钟软件. 安卓手机闹钟软件横评之软件介绍 评测环境: 评测手机:HTC G6 (Legend) 评测系统:Android 2 ...

  2. ym——Android从零开始(28)(来电铃声的设置、手机闹钟、手势识别)(新)

    转载请注明本文出自Cym的博客(http://blog.csdn.net/cym492224103),谢谢支持! 来电铃声的设置.手机闹钟.手势识别来电铃声的设置 MediaStore简介 Media ...

  3. android手机闹钟在那里面,手机闹钟软件哪个好用 安卓手机怎么设置闹钟

    一到冬天,起床就非常的困难.然而,给自己的手机设个闹钟就不用担心早上起不来了.现如今,手机几乎人手都会有,手机软件是个非常实用的软件,除了基本提醒的功能外,更多的辅助功能在生活中被广泛应用.那手机闹钟 ...

  4. 华为android在哪里设置,华为手机闹钟设置在哪里 7个步骤简单完成【图解】

    人们在生活中的每一天都有自己的规划,虽然说"生物钟"并不稳定,但是也需要根据时间规划来调整自身"生物钟".人们在每天的清晨都要按时起 床 ,单靠"生物 ...

  5. android 仿华为闹钟界面,华为手机闹钟隐藏操作?你知道几个?不知道真的可惜了!...

    现在,很多盆友都喜欢用智能手机作为工作生活中的提醒工具.的确,相较于传统闹钟来说,智能手机无论是功能丰富性,还是使用便捷性上都有着明显的优势.可即使这样,还是有很多人并不知道手机闹钟的一些深度功能.今 ...

  6. 基于Android的备忘录软件,基于Android的手机备忘录软件设计

    <基于Android的手机备忘录软件设计>由会员分享,可在线阅读,更多相关<基于Android的手机备忘录软件设计(25页珍藏版)>请在皮匠网上搜索. 1.课程设计报告(本科) ...

  7. android闹钟倒计时_如何在Android上使用闹钟,计时器和秒表

    android闹钟倒计时 Your Android device's built-in Clock app can serve as an alarm clock, a kitchen timer, ...

  8. android中管理后台服务的控件,基于android的手机日程管理系统需求调研报告(12页)-原创力文档...

    PAGE 1 基于Android的手机日程管理系统的设计与实现 需求调研分析 学生姓名: 王炜 学 号: 09110514034 指导教师: 刘雪梅 课题类型: AXP 专 业: 软件工程 学 部 : ...

  9. 基于android系统的闹钟,基于Android的闹钟的软件

    一.本课题要求:设计一个基于Android的闹钟的软件. 实现的功能有:能通过界面设置闹钟的启动条件建立后台服务进程,当满足触发条件时,闹钟响应相应事件. 二.需求分析 该课题实现在手机操作系统And ...

最新文章

  1. CentOS 7.4搭建Kubernetes 1.8.5集群
  2. 绝对巨星-罗伯特·巴乔
  3. Android系统匿名共享内存(Anonymous Shared Memory)C++调用接口分析(6)
  4. 【杂谈】当前模型剪枝有哪些可用的开源工具?
  5. python 如何生成特定间隔数列?range()、numpy.arange()
  6. Boost:标准地图比较的测试程序
  7. LiveVideoStackCon 倒数计时:0
  8. DOS Network一月项目月报
  9. leetcode(189) 旋转数组
  10. 交流信号叠加直流偏置_接收无线电信号利器,一款无线有源环形收音机接收天线放大器...
  11. 算法提高 输入输出格式练习(java)
  12. 利润暴增800%,单车成本降至22.7万元!特斯拉交出最强年报
  13. uvm 形式验证_6.小白学uvm验证 - 寄存器模型
  14. ISO50001认证咨询,ISO50001能源管理体系认证企业初次审核需要准备的材料
  15. 【信号处理】基于高阶统计量特征的通信系统中微弱信号检测附matlab代码
  16. android打开cad文件怎么打开方式,dwg文件怎么打开_手机上dwg文件用什么程序可以打开...
  17. 考生必看:高中数学三角函数公式大全(史上最全)
  18. 自己总结的linux命令
  19. 清华、商汤提出SIM方法,让自监督学习兼顾语义对齐与空间分辨能力
  20. 全球最受欢迎电商平台有哪些?这些平台怎么快速增加销量?

热门文章

  1. 难道只有我一个人想吐槽npm这种包管理方式么
  2. Lodop web打印
  3. Vue 使用form表单提交问题
  4. 腾讯微服务开源项目再摘信通院OSCAR开源大奖
  5. 使用速腾16线激光雷达与IMU 实现Cartographer 3D建图
  6. 小孩都看得懂的贝塔分布
  7. 小希的迷宫——HDU1272
  8. Splash的爬虫应用
  9. UI 测试:包含清单和示例的完整指南
  10. vs 2005中文版下载相关地址