步骤一:设置添加闹钟时的布局
要点:添加TimePicker组件
布局文件如下:
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">
android:id="@+id/time"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:ignore="InvalidId" />
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="设置闹钟"
/>
步骤二:设置闹钟启动的Activity及其布局
布局文件如下:
XM代理申请http://www.fx61.com/brokerlist/xm.html
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">
android: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" />
步骤三:在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 {
@Override
protected 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() { //给'设置闹钟'按钮设置监听
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this,alarmActivity.class);
PendingIntent pend=PendingIntent.getActivity(MainActivity.this,0,intent,0); //显示闹钟,alarmActivity
AlarmManager 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 在指定时间提醒并唤醒系统
}
});
}
}
|
|