1、首先创建一个广播提示时间到了

package com.example.alarm;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.widget.Toast;public class AlarmReceiver extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent arg1) {// TODO Auto-generated method stubToast.makeText(context, "你设置的闹钟时间到了", Toast.LENGTH_LONG).show();}}

2、注册广播

3、写布局文件

        
4、写主代码

package com.example.alarm;import java.util.Calendar;import android.os.Bundle;import android.os.Vibrator;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.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.TextView;import android.widget.TimePicker;public class MainActivity extends Activity {private Button determine;private Button cancel;private TextView text;Calendar calendar;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);initUI();}//初始化uiprivate void initUI() {// TODO Auto-generated method stub calendar = Calendar.getInstance(); text = (TextView)findViewById(R.id.text); determine = (Button)findViewById(R.id.button1); determine.setOnClickListener(new determineListener()); cancel = (Button)findViewById(R.id.button2); cancel.setOnClickListener(new cancelListener()); }//设置闹铃public class determineListener implements OnClickListener{@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubcalendar.setTimeInMillis(System.currentTimeMillis());int hour = calendar.get(Calendar.HOUR_OF_DAY);int minute = calendar.get(Calendar.MINUTE);new TimePickerDialog(MainActivity.this,new TimePickerDialog.OnTimeSetListener() {@Overridepublic void onTimeSet(TimePicker view, int hourofDay, int minute) {// TODO Auto-generated method stub//设置日历的时间和当前时间同步calendar.setTimeInMillis(System.currentTimeMillis());//设置小时和分钟 calendar.set(Calendar.HOUR_OF_DAY, hourofDay);                      calendar.set(Calendar.MINUTE, minute);                      //将秒合毫秒设置为0                     calendar.set(Calendar.SECOND, 0);                      calendar.set(Calendar.MILLISECOND, 0);                      //建立Intent和PendingIntent来调用闹钟管理器                     Intent intent = new Intent(MainActivity.this, AlarmReceiver.class);                      PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, intent, 0);                      //获取闹钟管理器                     AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);                      //设置闹钟                     alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);                      alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (10 * 1000),                               (24 * 60 * 60 * 1000), pendingIntent);                      String tmps = "设置闹钟时间为" + format(hourofDay) + ":" +format(minute);                      text.setText(tmps);                    }}, hour, minute, true).show();}}/** *  * @param time * @return */ private String format(int time){         String str = "" + time;         if(str.length() == 1){             str = "0" + str;         }         return str;     } //取消闹铃public class cancelListener implements OnClickListener{@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stub//建立Intent和PendingIntent来调用闹钟管理器Intent intent = new Intent(MainActivity.this, AlarmReceiver.class);             PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, intent, 0);             //获取闹钟管理器            AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);             //取消闹钟设置            alarmManager.cancel(pendingIntent);             text.setText("闹铃已取消!"); }}}


更多相关文章

  1. android使用shape设置下边框
  2. android camera的基本使用
  3. android 设置linelayout让按钮自动适应屏大小
  4. Android(安卓)实现拍照功能
  5. Android(安卓)字体效果:描边、浮雕效果
  6. 【有图】android通过jdbc连接mysql(附文件)
  7. android 入门demo 解析xml
  8. Android(安卓)将TabHost放在最下方显示
  9. Android(安卓)为Notification加上一个进度条

随机推荐

  1. android 视频播放器 android videoView
  2. 解决windows下eclipse中android项目关联a
  3. Android(安卓)API 中提供的20个服务
  4. 谈谈android数据存储方式
  5. Android 系统权限之SuperSU 模拟器root
  6. 【Android Training - 04】保存数据 [ Le
  7. Android(安卓)SDK 在线更新镜像服务器资
  8. Android(安卓)7.0 之后抓包 Charles 手机
  9. Android横竖屏总结全
  10. MAC系统Android Studio默认debug签名证书