Android—只需3步你也能做一个Android闹钟(2020-6-26)
下面是实现图:
步骤一:设置添加闹钟时的布局
要点:
添加TimePicker组件
布局文件如下:
<?xml version=\"1.0\" encoding=\"utf-8\"?><LinearLayout 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\"android:orientation=\"vertical\"tools:context=\".MainActivity\"><TimePickerandroid:id=\"@+id/time\"android:layout_width=\"match_parent\"android:layout_height=\"wrap_content\"tools:ignore=\"InvalidId\" /><Buttonandroid:id=\"@+id/button\"android:layout_width=\"match_parent\"android:layout_height=\"wrap_content\"android:text=\"设置闹钟\"/></LinearLayout>
步骤二:设置闹钟启动的Activity及其布局
我只要了一个闹钟的图片如下:
布局文件如下:
<?xml version=\"1.0\" encoding=\"utf-8\"?><androidx.constraintlayout.widget.ConstraintLayout 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=\".alarmActivity\"><ImageViewandroid:id=\"@+id/imageView\"android:layout_width=\"match_parent\"android:layout_height=\"match_parent\"android:src=\"@drawable/naozhong\"tools:layout_editor_absoluteX=\"0dp\"tools:layout_editor_absoluteY=\"0dp\" /></androidx.constraintlayout.widget.ConstraintLayout>
步骤三:在MainActivity类中设置闹钟具体看代码详解
闹钟类型:
AlarmManager.ELAPSED_REALTIME 在指定延迟后提醒
AlarmManager.ELAPSED_REALTIME_WAKEUP 在指定延迟后提醒,并唤醒系统
AlarmManager.RTC 在指定时间提醒
AlarmManager.RTC_WAKEUP 在指定时间提醒并唤醒系统
package com.example.test;import androidx.appcompat.app.AppCompatActivity;import android.app.AlarmManager;import android.app.PendingIntent;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TimePicker;import java.util.Calendar;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);final TimePicker timePicker=findViewById(R.id.time); //获取时间拾取组件Button button=findViewById(R.id.button);button.setOnClickListener(new View.OnClickListener() { //给\'设置闹钟\'按钮设置监听@Overridepublic void onClick(View v) {Intent intent=new Intent(MainActivity.this,alarmActivity.class);PendingIntent pend=PendingIntent.getActivity(MainActivity.this,0,intent,0); //显示闹钟,alarmActivityAlarmManager alarm= (AlarmManager) getSystemService(Context.ALARM_SERVICE); // 通过Context.ALARM_SERVICE获取AlarmManager对象Calendar calendar =Calendar.getInstance(); //获取日历对象calendar.set(Calendar.HOUR_OF_DAY,timePicker.getHour()); //利用时间拾取组件timePicker得到要设定的时间calendar.set(Calendar.MINUTE,timePicker.getMinute());calendar.set(Calendar.SECOND,0);alarm.set(AlarmManager.RTC,calendar.getTimeInMillis(),pend); //设定闹钟//AlarmManager.ELAPSED_REALTIME 在指定延迟后提醒//AlarmManager.ELAPSED_REALTIME_WAKEUP 在指定延迟后提醒,并唤醒系统//AlarmManager.RTC 在指定时间提醒//AlarmManager.RTC_WAKEUP 在指定时间提醒并唤醒系统}});}}
一个简易的自制闹钟就做好了!