使用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>

 

posted @ 2020-03-30 22:18  hemeiwolong  阅读(406)  评论(0编辑  收藏  举报