• 使用AlarmManager设置闹钟


    运行效果:

                               

    activity_main.xml:

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     3     xmlns:app="http://schemas.android.com/apk/res-auto"
     4     xmlns:tools="http://schemas.android.com/tools"
     5     android:layout_width="match_parent"
     6     android:layout_height="match_parent"
     7     tools:context=".MainActivity">
     8 
     9     <TimePicker
    10         android:id="@+id/time"
    11         android:layout_width="wrap_content"
    12         android:layout_height="wrap_content"/>  //时间拾取器
    13 
    14     <Button
    15         android:id="@+id/set"
    16         android:layout_width="wrap_content"
    17         android:layout_height="wrap_content"
    18         android:layout_below="@+id/time"
    19         android:layout_centerHorizontal="true"
    20         android:text="set"
    21         />  //设置闹钟按钮
    22 
    23 </RelativeLayout>

     MainActivity:

     1 package com.mingrisoft.alarm;
     2 
     3 import android.app.AlarmManager;
     4 import android.app.PendingIntent;
     5 import android.content.Context;
     6 import android.content.Intent;
     7 import android.support.v7.app.AppCompatActivity;
     8 import android.os.Bundle;
     9 import android.view.View;
    10 import android.widget.Button;
    11 import android.widget.TimePicker;
    12 import android.widget.Toast;
    13 
    14 import java.util.Calendar;
    15 
    16 public class MainActivity extends AppCompatActivity {
    17 
    18     @Override
    19     protected void onCreate(Bundle savedInstanceState) {
    20         super.onCreate(savedInstanceState);
    21         setContentView(R.layout.activity_main);
    22 
    23         final TimePicker timePicker = findViewById(R.id.time);  //时间拾取器
    24         final Calendar calendar;    //日历对象
    25 
    26         calendar = Calendar.getInstance();  //获取日历对象
    27         timePicker.setIs24HourView(true);   //设置使用24小时制
    28 
    29         Button button = findViewById(R.id.set); //获取“设置闹钟”按钮
    30         //为按钮添加时间监听器
    31         button.setOnClickListener(new View.OnClickListener() {
    32             @Override
    33             public void onClick(View v) {
    34                 //创建Intent对象
    35                 Intent intent = new Intent(MainActivity.this, AlarmActivity.class);
    36                 //获取显示闹钟的PendingIntent对象
    37                 PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, 0 , intent, 0);
    38                 //获取AlarmManager对象
    39                 AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
    40                 //设置闹钟的小时数
    41                 calendar.set(Calendar.HOUR_OF_DAY, timePicker.getCurrentHour());
    42                 //设置闹钟的分钟数
    43                 calendar.set(Calendar.MINUTE, timePicker.getCurrentMinute());
    44                 //设置闹钟的秒数
    45                 calendar.set(Calendar.SECOND, 0);
    46                 //设置一个闹钟
    47                 alarmManager.set(alarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
    48                 //显示一个消息提示
    49                 Toast.makeText(MainActivity.this, "闹钟设置成功", Toast.LENGTH_SHORT).show();
    50             }
    51         });
    52     }
    53 }

    创建一个AlarmActivity,用于显示闹钟提示的内容。在该Activity中重写onCreate()方法,在该方法中创建并显示一个带“确定”按钮的对话框,显示闹钟的提示内容:

     1 package com.mingrisoft.alarm;
     2 
     3 import android.content.DialogInterface;
     4 import android.os.Bundle;
     5 import android.support.annotation.Nullable;
     6 import android.support.v7.app.AlertDialog;
     7 import android.support.v7.app.AppCompatActivity;
     8 
     9 public class AlarmActivity extends AppCompatActivity {
    10     @Override
    11     protected void onCreate(@Nullable Bundle savedInstanceState) {
    12         super.onCreate(savedInstanceState);
    13 
    14         AlertDialog alert = new AlertDialog.Builder(this).create();
    15         alert.setIcon(R.drawable.alarm);    //设置对话框的图标
    16         alert.setTitle("传递正能量");    //设置对话框的标题
    17         alert.setMessage("hemeiwolong");    //设置要要显示的内容
    18 
    19         alert.setButton(DialogInterface.BUTTON_POSITIVE, "确定", new DialogInterface.OnClickListener() {
    20             @Override
    21             public void onClick(DialogInterface dialog, int which) {
    22 
    23             }
    24         });
    25         alert.show();   //显示对话框
    26     }
    27 }

    AndroidManifest.xml:

     1 <?xml version="1.0" encoding="utf-8"?>
     2 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     3     package="com.mingrisoft.alarm">
     4 
     5     <application
     6         android:allowBackup="true"
     7         android:icon="@mipmap/ic_launcher"
     8         android:label="@string/app_name"
     9         android:roundIcon="@mipmap/ic_launcher_round"
    10         android:supportsRtl="true"
    11         android:theme="@style/AppTheme">
    12         <activity android:name=".MainActivity">
    13             <intent-filter>
    14                 <action android:name="android.intent.action.MAIN" />
    15 
    16                 <category android:name="android.intent.category.LAUNCHER" />
    17             </intent-filter>
    18         </activity>
    19 
    20         <activity
    21             android:name=".AlarmActivity"
    22             android:label="闹钟">
    23         </activity>
    24     </application>
    25 
    26 </manifest>
  • 相关阅读:
    【Python专题】python入门之代码编辑器和输入输出
    【Python专题】python入门之一:搭建开发环境
    制作你的专属BB8机器人
    《专题:C++语法基础》篇五:循环程序设计
    《专题:C++语法基础》篇四:C++分支程序设计
    《专题:C++语法基础》篇三:C++中的算术运算、赋值运算
    数据库SQL Server2012笔记(八)——Statement与PreparedStatement的区别,JDBC方式操作数据库
    数据库SQL Server2012笔记(七)——java 程序操作sql server
    数据库SQL Server2012笔记(六)——修改表、数据的备份和恢复
    数据库SQL Server2012笔记(三)——表的复杂查询
  • 原文地址:https://www.cnblogs.com/hemeiwolong/p/12601729.html
Copyright © 2020-2023  润新知