文档章节

关于android闹钟,设置定时提醒的一点心得。

YaphetS_T
 YaphetS_T
发布于 2014/04/02 15:17
字数 661
阅读 14211
收藏 10

首先在设置提醒之前你需要一个入口,比如说onclick事件中,在此不做赘述。

android中使用闹钟进行提醒其实非常简单,你只需要告知系统你想在什么时候被提醒,然后需要一个闹钟的广播接收器,当到你设置的时间时,系统会给你发送一条广播,当你接收到广播后你就可以做一些操作,比如启动你的app,或者跳转到你app中的任何一个界面。废话不多少,直接上代码。

//发送闹钟请求
Intent intent = new Intent(mContext, AlarmReceiver.class);
intent.setAction("something");
intent.setType("something");
intent.setData(Uri.EMPTY);
intent.addCategory(“something”);
intent.setClass(context, AlarmReceiver.class);
// 以上给intent设置的四个属性是用来区分你发给系统的闹钟请求的,当你想取消掉之前发的闹钟请求,这四个属性,必须严格相等,所以你需要一些比较独特的属性,比如服务器返回给你的json中某些特定字段。
//当然intent中也可以放一些你要传递的消息。
PendingIntent pendingIntent = PendingIntent.getBroadcast(context, alarmCount, intent, 0);
//alarmCount是你需要记录的闹钟数量,必须保证你所发的alarmCount不能相同,最后一个参数填0就可以。
AlarmManager am = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, time, pendingIntent);
//这样闹钟的请求就发送出去了。time是你要被提醒的时间,单位毫秒,注意不是时间差。第一个参数提醒的需求用我给出的就可以,感兴趣的朋友,可以去google一下,这方面的资料非常多,一共有种,看一下就知道区别了。
//取消闹钟请求
Intent intent = new Intent(mContext, AlarmReceiver.class);
intent.setAction("something");
intent.setType(something);
intent.setData(Uri.EMPTY);
intent.addCategory(something);
intent.setClass(context, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, alarmCount, intent, 0);
//alarmCount对应到你设定时的alarmCount,
AlarmManager am = (AlarmManager) mContext.getSystemService(Context.ALARM_SERVICE);
am.cancel(pendingIntent);
//接着,你需要一个广播接收的类:
public class AlarmReceiver extends BroadcastReceiver{

	private NotificationManager manager;
	
	@Override
	public void onReceive(Context context, Intent intent) {
		manager = (NotificationManager)context.getSystemService(android.content.Context.NOTIFICATION_SERVICE);
		//例如这个id就是你传过来的
		String id = intent.getStringExtra("id");
                //MainActivity是你点击通知时想要跳转的Activity
		Intent playIntent = new Intent(context, MainActivity.class);
		playIntent.putExtra("id", id);
		PendingIntent pendingIntent = PendingIntent.getActivity(context, 1, playIntent, PendingIntent.FLAG_UPDATE_CURRENT);
		NotificationCompat.Builder builder = new NotificationCompat.Builder(context);
		builder.setContentTitle("title").setContentText("提醒内容").setSmallIcon(R.drawable.app_icon).setDefaults(Notification.DEFAULT_ALL).setContentIntent(pendingIntent).setAutoCancel(true).setSubText("二级text");
		manager.notify(1, builder.build());
	}
}

到这里闹钟提醒的功能就基本完成了。有问题可以留言。

© 著作权归作者所有

上一篇: 关于微信分享
下一篇: 关于微信分享
YaphetS_T
粉丝 2
博文 2
码字总数 971
作品 0
海淀
程序员
私信 提问
加载中

评论(2)

孤独徘徊

引用来自“林正航”的评论

您好 我是android新手 想问两个问题
1、在哪设置时间啊
2、我想要的效果是就算APP没有启动 时间到了 也会自动提醒
请问一下你的问题解决了吗?我现在也遇到这问题
林正航
您好 我是android新手 想问两个问题
1、在哪设置时间啊
2、我想要的效果是就算APP没有启动 时间到了 也会自动提醒
Android 平台上长连接的实现

Android 平台上长连接的实现 为了不让 NAT 表失效,我们需要定时的发心跳,以刷新 NAT 表项,避免被淘汰。 Android 上定时运行任务常用的方法有2种,一种方法用 Timer,另一种是AlarmManage...

jeffzhao
2013/02/28
0
1
远程提醒如何实现(在android环境下)

请教:如何向Android手机发送一个提醒,这个提醒定时会完成一个动作或任务。 我知道如果自己设定闹钟,就可以自己提醒自己。但如果远程要发一个定时提醒给别人或很多人,如何可以实现?

zpf_cn
2011/06/27
2.9K
9
NativeSubprocess里的subprocess可以create,但是不起作用,想请教一下怎么用?

@droidwolf 你好,想跟你请教个问题:你好,本人是做android开发的,现在在开发类似于闹钟的提醒功能,用到AlarmManager来实现,功能是实现了,但是有个问题,一旦程序闲置一段时间被系统回收...

Jock_Jan
2015/09/12
508
0
最简单的闹钟:pull time iOS

目前使用过操作最简单的闹钟APP,交互有些意思,推荐给想要一个闹钟程序的人。   PULL TIME   一、用户   连闹钟都要在手机上定的智能手机症候群。   二、痛点以及场景   重要事情怕...

程序员客栈
2016/04/29
29
0
Android Alarm manager定时闹钟开发详解

Android Alarm manager定时闹钟开发详解 Alarmmanager主要管理硬件时钟。 一些与时间相关的应用,如日历,闹钟等需要使用AlarmManager的服务。Alarmmanager 功能相对比较简单,相关代码位于 ...

庸人谷
2012/12/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

基础工具类

package com.atguigu.util;import java.sql.Connection;import java.sql.SQLException;import java.util.Properties;import javax.sql.DataSource;import com.alibaba.druid......

architect刘源源
今天
42
0
P30 Pro劲敌!DxO官宣新机:排行榜又要变

5月26日晚间,DxOMark官方推特预告,将在5月27日公布一款新机型的DxOMark评分,猜猜是哪款? 网友猜想的机型有:红米K20、谷歌Pixel 3a、索尼Xperia 1、诺基亚9 PureView等。 DxOMark即将公布...

linux-tao
昨天
15
0
Ubuntu18.04.2窗口过小不能自适应(二次转载)

解决Ubuntu在虚拟机窗口不能自适应 2018年09月06日 16:20:08 起不了名儿 阅读数 855 此博文转载:https://blog.csdn.net/nuddlle/article/details/77994080(原地址) 试了很多办法这个好用 ...

tahiti_aa
昨天
2
0
死磕 java同步系列之CountDownLatch源码解析

问题 (1)CountDownLatch是什么? (2)CountDownLatch具有哪些特性? (3)CountDownLatch通常运用在什么场景中? (4)CountDownLatch的初始次数是否可以调整? 简介 CountDownLatch,可以...

彤哥读源码
昨天
6
0
Nginx提供下载apk服务

有时候我们可能需要提供文件或者其他apk下载链接,通过 nginx 配置可以很简单地实现。 server {    listen 80;    server_name download.xxx.com;    root app;    locati...

Jack088
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部