zoukankan      html  css  js  c++  java
  • 使用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>
  • 相关阅读:
    帝国 标签模板 使用程序代码 去除html标记 并 截取字符串
    iis6 伪静态 iis配置方法 【图解】
    您来自的链接不存在 帝国CMS
    帝国cms Warning: Cannot modify header information headers already sent by...错误【解决方法】
    .fr域名注册 51元注册.fr域名
    帝国网站管理系统 恢复栏目目录 建立目录不成功!请检查目录权限 Godaddy Windows 主机
    星外虚拟主机管理平台 开通数据库 出现Microsoft OLE DB Provider for SQL Server 错误 '8004' 从字符串向 datetime 转换失败
    ASP.NET 自定义控件学习研究
    CSS层叠样式表之CSS解析机制的优先级
    ASP.NET程序员工作面试网络收藏夹
  • 原文地址:https://www.cnblogs.com/hemeiwolong/p/12601729.html
Copyright © 2011-2022 走看看