闹铃设置
16lz
2021-12-04
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("闹铃已取消!"); }}}
更多相关文章
- android使用shape设置下边框
- android camera的基本使用
- android 设置linelayout让按钮自动适应屏大小
- Android(安卓)实现拍照功能
- Android(安卓)字体效果:描边、浮雕效果
- 【有图】android通过jdbc连接mysql(附文件)
- android 入门demo 解析xml
- Android(安卓)将TabHost放在最下方显示
- Android(安卓)为Notification加上一个进度条