Android闹钟设置

本文介绍如何使用BroadcastReceiver实现Android设备上的闹钟提醒功能。通过创建自定义BroadcastReceiver类并结合AlarmManager设置指定时间触发的事件,同时展示了如何从数据库读取闹钟设置并为每个事件设置独立的提醒。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,要用到闹钟,就要用到BroadcastReceiver,比如,在闹钟响时就显示一句话,那么这个类的代码如下:

package com.FeifeiSchedule.activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
import android.widget.Toast;
/*
 * author:Tammy Pi
 * function:用于闹钟提醒的broadcase
 */
public class MyBroadCast extends BroadcastReceiver{

	@Override
	public void onReceive(Context arg0, Intent arg1) {
		// TODO Auto-generated method stub
		Log.i("info","进入");
		Toast.makeText(arg0,"闹钟响了",Toast.LENGTH_SHORT).show();
	}
}

要用到Receiver,那么就需要在AndroidMainfest.xml中声明,该声明放在application中,activity后:

 <!-- 设置Receiver -->
	    <receiver  
	            android:name=".MyBroadCast" 
	            android:process=":remote">             
		</receiver> 


然后,再查下数据库,满足条件的全部设置上闹钟:

//循环数据库,将闹钟事件放入
    	List<TbSchedule> alarmList = FeifeiScheduleService.getInstance(this).findAlarmSchedule();
    	for(int i=0;i<alarmList.size();i++){
    		
    		AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
    		
    		Intent intent = new Intent(FeifeiScheduleActivity.this,MyBroadCast.class);
    		TbSchedule tbSchedule = alarmList.get(i);
    		PendingIntent pi = PendingIntent.getBroadcast(FeifeiScheduleActivity.this,0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
    		
    		Calendar calendar = Calendar.getInstance();
    		Date date = null;
    		try {
				date = new SimpleDateFormat("yyyy-MM-dd hh:mm").parse(tbSchedule.getMydate());
				TimeZone tm = TimeZone.getTimeZone("GMT");
				calendar.setTimeZone(tm);
				calendar.clear();
				calendar.setTime(date);
				
				//设置闹钟时间
				alarmManager.set(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),pi);
				myMap.put(tbSchedule.getScheduleid(),pi);
    		}catch (ParseException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
				Log.i("info",e.getMessage());
			}
    	}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值