当前位置:主页 > android教程 > Android AlarmManager设置闹钟功能

Android使用AlarmManager设置闹钟功能

发布:2023-03-11 16:00:01 59


本站收集了一篇相关的编程文章,网友邱曼凝根据主题投稿了本篇教程内容,涉及到Android、AlarmManager、闹钟、Android AlarmManager设置闹钟功能相关内容,已被690网友关注,涉猎到的知识点内容可以在下方电子书获得。

Android AlarmManager设置闹钟功能

本文实例为大家分享了Android使用AlarmManager设置闹钟的具体代码,供大家参考,具体内容如下

一、首先创建设置闹钟的布局页面activity_alarm_manager.xml




    

    

二、创建AlarmActivity用于设置其到达指定时间后,弹出的一个对话,这个要在清单文件中注册

public class AlarmActivity extends AppCompatActivity {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
        alertDialog.setTitle("传递正能量")
                .setIcon(R.drawable.ic_baseline_report)
                .setMessage("要么出众,要么出局")
                .setNegativeButton("确定", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        //确定
                    }
                }).show();
    }
}

三、在activity_alarm_manager.xml对应的Activity中设置闹钟

public class AlarmManagerActivity extends AppCompatActivity {
    private TimePicker timePicker;
    private Button btn_alarm;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_alarm_manager);
        timePicker = findViewById(R.id.timePicker);
        btn_alarm = findViewById(R.id.btn_alarm);

        btn_alarm.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //设置闹钟
                Intent intent = new Intent(AlarmManagerActivity.this, AlarmActivity.class);
                //获取显示闹钟的PendingIntent
                //PendingIntent是对Intent的描述,主要用来处理即将发生的事情,这个Intent会由其他程序进行调用,这里是由闹钟调用
                PendingIntent pendingIntent = PendingIntent.getActivity(AlarmManagerActivity.this, 0, intent, 0);
                //获取AlarmManager对象
                AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
                //获取日历对象
                Calendar c = Calendar.getInstance();
                //设置闹钟的小时数
                c.set(Calendar.HOUR_OF_DAY, timePicker.getHour());
                //设置闹钟的分钟数
                c.set(Calendar.MINUTE, timePicker.getMinute());
                //设置闹钟的秒数
                c.set(Calendar.SECOND, 0);
                //第一个参数:闹钟类型
                //ELAPSED_REALTIME:在指定的延时后提醒(不唤醒系统)
                //ELAPSED_REALTIME_WAKEUP:在指定的延时后提醒(唤醒系统)
                //RTC:到达指定时间提醒(不唤醒系统)
                //RTC_WAKEUP:到达指定时间提醒(唤醒系统)
                //第二参数:指定时间,获取日历对象对应时间的毫秒数
                //第三个参数:用于指定当闹钟唤醒时,所指定的页面
                alarm.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), pendingIntent);
                Toast.makeText(AlarmManagerActivity.this, "闹钟设置成功!", Toast.LENGTH_SHORT).show();
            }
        });

    }
}

效果如图所示:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。


参考资料

相关文章

  • Android PowerManagerService 打开省电模式

    发布:2023-03-02

    这篇文章主要介绍了Android PowerManagerService打开省电模式,文章通告省电模式的打开过程、什么是 battery saver sticky 模式两部分展开详情,感兴趣的朋友可以参考一下


  • Android与iOS包体优化及一键自动打包脚本

    发布:2023-03-06

    这篇文章主要为大家介绍了安卓与iOS包体优化及一键自动打包脚本详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪


  • Android获取设备传感器的方法

    发布:2023-03-11

    这篇文章主要为大家详细介绍了Android获取设备传感器的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • Android Handler源码深入探究

    发布:2023-03-03

    handler其实就是主线程在起了一个子线程,子线程运行并生成Message,Looper获取message并传递给Handler,Handler逐个获取子线程中的Message


  • Android性能优化之线程监控与线程统一详解

    发布:2023-03-10

    这篇文章主要为大家介绍了Android性能优化之线程监控与线程统一详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪


  • Android开发实战闹钟项目

    发布:2023-03-07

    这篇文章主要介绍了Android开发实战闹钟项目,根据我们手机闹钟设计的一个闹钟APP,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • Android性能优化之ANR问题定位分析

    发布:2023-03-03

    这篇文章主要介绍了Android性能优化之ANR问题定位分析,ANR应用程序未响应,当主线程被阻塞时,就会弹出如下弹窗,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可任意参考一下


  • Android Jetpack组件支持库DataBinding与ViewModel与LiveData及Room详解

    发布:2023-03-12

    Jetpack是一个由多个技术库组成的套件,可帮助开发者遵循最佳做法,减少样板代码并编写可在各种Android版本和设备中一致运行的代码,让开发者精力集中编写重要的代码


网友讨论