Android使用AlarmManager设置闹钟功能

2022-09-19 15:13:44

本文实例为大家分享了Android使用AlarmManager设置闹钟的具体代码,供大家参考,具体内容如下一、首先创建设置闹钟的布局页面activity_alarm_manager.xml?xmlv...

本文实例为大家分享了android使用AlarmManager设置闹钟的具体代码,供大家参考,具体内容如下

一、首先创建设置闹钟的布局页面activity_alarm_manager.XML

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:app="http://schemas.android.com/apk/res-auto"
  xmlns:tools="http://schemas.android.com/tools"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  tools:context=".AlarmManagerActivity">

  <TimePicker
    android:id="@+id/timePicker"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

  <Button
    android:id="@+id/btn_alarm"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@id/timePicker"
    android:layout_centerHorizontal="true"
    android:text="设置闹钟" />
</RelativeLayout>

二、创建AlarMACtivity用于设置其到达指定时间后,弹出的一个对话,这个要在清单文件中注册

public class AlarmActivity extends AppCompatActivity {
  @Override
  protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
    alertDialog.setTitle("传递正能量")
        .setIcon(R.drawable.ic_baseline_report)
     android   .setMessage("要么出众,要么出局")
        .setNegativeButton("确定", new DialogInterface.OnClickListener() {
          @Override
          public void onClick(DialogInterface dialog, int which) {
            //确定
          }
        }).show();
  }
}

三、在activity_alarm_manager.xml对应的Activity中设置闹钟

public class AlarmManagerActivity extends AppCompatActivity {
  private TimePicker timePicker;
  private Button btn_alarm;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_alarm_manager);
    timePicker = findViewById(R.id.timePicker);
    btn_alarm = findViewById(R.id.btn_alarm);

    btn_alarm.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        //设置闹钟
        Intent intent = new Intent(AlarmManagerActivity.this, AlarmActivity.class);
        //获取显示闹钟的PendingIntent
        //PendingIntent是对Intent的描述,主要用来处理即将发生的事情,这个Intent会由其他程序进行调用,这里是由闹钟调用
        PendingIntent pendingIntent = PendingIntent.getActivity(AlarmManagerActivity.this, 0, intent, 0);
        //获取AlarmManager对象
        AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
        //获取日历对象
        Calendar c = Calendar.getInstance();
        //设置闹钟的小时数
        c.set(Calendar.HOUR_OF_DAY, timePicker.getHour());
        //设置闹钟的分钟数
        c.set(Calendar.MINUTE, timePicker.getMinute());
        //设置闹钟的秒数
        c.set(Calendar.SECOND, 0);
        //第一个参数:闹钟类型
        //ELAPSED_REALTIME:在指定的延时后提醒(不唤醒系统)
        //ELAPSED_REALTIME_WAKEUP:在指定的延时后提醒(唤醒系统)
        //RTC:到达指定时间提醒(不唤醒系统)
        //RTC_WAKEUP:到达指定时间提醒(唤醒系统)
        //第二参数:指定时间,获取日历对象对应时间的毫秒数
        //第三个参数:用于指定当闹钟唤醒时,所指定的页面
        alarm.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), pendingIntent);
        Toast.makeText(AlarmManagerActivity.this, "闹钟设置成功!", Toast.LENGTH_SHORT).show();
      }
    });

  }
}

效果如图所示:

Android使用AlarmManager设置闹钟功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。