【Android开发基础】活动提醒(日历)

一、引言

  • 描述:在日常生活中,有些应用拥有着软件活动这个功能,就比如:520、618、双十一等。就需要设置活动提醒,用于提醒用户参加活动。防止错过参与时间,导致不必要的烦恼和懊悔。
  • 解决方案:
    1、注册Service(但会随着关机而关闭服务,那么就需要设置开机自启权限,上一期博客有介绍如何使用)
    2、注册日历
  • 难度:初级
  • 效果
    在这里插入图片描述

二、实现

1、权限配置

老规矩,调用软件之外的应用和服务都需要配置权限(AndroidManifest.xml)
这里我们使用注册日历提醒,来实现这个需求。日历作为手机标配的服务之一,他的功能和服务肯定比大部分初学者厉害,刚开始就没必要为难自己了,就直接套用这些功能来实现一些简单的功能。

<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />

2、主要编码

其中关于Intent机制的学习可以前往Android官网学习。通过developers平台,翻阅指南,查找到的简单的日历权限使用。我个人认为学习一项技术,关于此技术的官方文档起码要读两遍左右。

参数描述
EXTRA_EVENT_BEGIN_TIME开始时间
EXTRA_EVENT_END_TIME结束时间
Events.TITLE主题
Events.DESCRIPTION备注
Events.EVENT_LOCATION地点
  • Calendar

       一个抽象基类,用于在对象和一组整数字段(如 、、 等)之间进行转换。Date的子类根据特定日历系统的规则解释a。ICU4J包含几个实现不同国际日历系统的子类。CalendarDate与其他区分区域设置的类一样,提供了一个类方法 ,用于获取此类型的一般有用的对象。的方法返回适合区域设置类型的日历,其时间字段已使用当前日期和时间初始化:Calendar getInstance Calendarget Instance

  • Intent(来自于官方-只是一部分)
    在这里插入图片描述

  • 主要代码

try {
    Calendar beginTime = Calendar.getInstance();
    beginTime.set( year , month, day, hoer, minute);
    Calendar endTime = Calendar.getInstance();
    endTime.set(year, month, day, hoer + 1, minute);
    Intent intent = new Intent(Intent.ACTION_INSERT)
            .setData(CalendarContract.Events.CONTENT_URI)
            .putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME, beginTime.getTimeInMillis())   // 开始时间
            .putExtra(CalendarContract.EXTRA_EVENT_END_TIME, endTime.getTimeInMillis())   // 结束时间
            .putExtra(CalendarContract.Events.TITLE, title)   // 主题
            .putExtra(CalendarContract.Events.DESCRIPTION, des)  // 备注   
            .putExtra(CalendarContract.Events.EVENT_LOCATION, loc)  // 地点
            .putExtra(CalendarContract.Events.AVAILABILITY, CalendarContract.Events.AVAILABILITY_BUSY)
            .putExtra(Intent.EXTRA_EMAIL, "rowan@example.com, trevor@example.com");
    startActivity(intent);
} catch (SecurityException e){
    e.printStackTrace();
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

云端new守夜人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值