/* * 版权所有 (c) 2010-2011,MiCode 开源社区 (www.micode.net) * 根据 Apache 许可证 2.0 版本("许可证")授权; * 除非符合许可证的规定,否则不得使用本文件。 * 您可以从以下网址获取许可证副本: * http://www.apache.org/licenses/LICENSE-2.0 * 除非适用法律要求或书面同意,本软件按"原样"分发, * 没有任何明示或暗示的保证或条件。 * 详见许可证中规定的权限和限制。 * (注:这是一份标准的Apache许可证2.0版本的开源声明) */ // 定义包路径,指明该类所在的包位置 package net.micode.notes.ui; // 导入Android相关类库 import android.annotation.SuppressLint; import android.content.BroadcastReceiver; // 广播接收器基类 import android.content.Context; // 上下文对象,提供应用环境信息 import android.content.Intent; // 意图对象,用于组件间通信 /** * 闹钟广播接收器 * 接收系统闹钟触发广播,启动闹钟提醒界面 * 功能说明: * 1. 继承自BroadcastReceiver,专门处理闹钟触发事件 * 2. 当闹钟触发时,启动AlarmAlertActivity显示提醒 * 3. 作为系统闹钟和用户界面之间的桥梁 */ public class AlarmReceiver extends BroadcastReceiver { /** * 广播接收回调方法 * 当闹钟触发时由系统自动调用 * * @param context 上下文对象,提供启动Activity所需的运行环境 * @param intent 包含触发闹钟的相关信息,特别是笔记的URI数据 */ @Override public void onReceive(Context context, @SuppressLint("UnsafeIntentLaunch") Intent intent) { // 修改Intent的目标组件为AlarmAlertActivity intent.setClass(context, AlarmAlertActivity.class); // 添加NEW_TASK标志,因为从非Activity上下文启动Activity需要此标志 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // 启动闹钟提醒Activity context.startActivity(intent); /// 注意点: /// 1. 原Intent中已经包含了笔记URI数据(在AlarmInitReceiver中设置) /// 2. FLAG_ACTIVITY_NEW_TASK确保可以正确启动Activity /// 3. 此方法执行时间应尽量短,避免ANR(应用无响应)错误 } }