Tasker 时间上下文详解 定时自动化的基础 时间窗口与周期
什么是时间上下文
时间上下文(Time Context)是 Tasker 中最简单、最省电、最可靠的触发条件。它让 Profile 在你指定的时间段内保持激活状态。
基本形态
时间上下文只有两种基本形态:
精确时刻:
- 例:每天早上 7:00
- 行为:在这一刻激活 Profile(瞬发)
时间窗口:
- 例:每天 21:00 - 次日 07:00
- 行为:进入这个时间段时激活,离开时执行 Exit Task
设置时间窗口时,Tasker 会自动处理跨午夜的情况——开始时间晚于结束时间时,它默认是"到次日同一时间结束"。
搭配 Day(星期)使用
时间上下文本身不区分"哪一天"。要实现"工作日早上 9 点"这种逻辑,需要同时使用 Day Context:
Time Context:09:00 - 18:00
AND
Day Context:周一、周二、周三、周四、周五
Day Context 可以指定:
- 星期几(周一到周日多选)
- 具体日期(如每月 1 号、生日)
- 定期重复(如每两周一次)
时间 Context 的"瞬发" vs "持续"
这点很重要,决定了 Exit Task 是否执行:
| 设置 | 行为 | Exit Task |
|---|---|---|
| 单一时刻(如 07:00) | 到点激活一次 | 不执行(瞬发) |
| 时间窗口(如 21:00-07:00) | 进入时激活,离开时退出 | 窗口结束时执行 |
举个例子:"夜间模式" Profile 设置 22:00 - 07:00:
- 22:00 → Profile 激活 → Enter Task:调暗亮度 + 勿扰 + 关闭 Wi-Fi
- 07:00 → Profile 退出 → Exit Task:恢复亮度 + 关闭勿扰 + 开启 Wi-Fi
常见时间自动化模式
工作日/周末差异化
时间窗口:09:00 - 18:00
AND
Day:周一至周五
→ Enter:静音模式 + 开启勿扰→ Exit:恢复正常
昼夜自动切换(根据日出日落)
Tasker 没有内置日出日落变量,但可以通过其他方式获取:
- 用
%LOC+ 公式计算 - 配合 AutoLocation 插件
- 简单方案:时间窗口设成 06:00-18:00(大致对应)
周期性提醒
时间上下文:每 2 小时(从 08:00 开始)
→ Task:发送通知"记得喝水"
Tasker 支持"重复"类型的时间上下文,可以设置每隔 N 分钟/小时/天触发一次。
时间 Context 与 Doze
Android 6.0 引入的 Doze 模式在设备静止时会延迟后台闹钟。但 Tasker 的时间上下文使用 Android 的标准 AlarmManager,在大多数设备上能在 Doze 期间正常触发(因为 Tasker 会申请 WAKE_LOCK)。
不过,如果你的 OEM 系统非常激进地限制后台闹钟,可能需要额外设置——详见 Android 电池优化。
跨午夜时间窗口陷阱
设置 22:00 - 07:00 这种窗口时,注意:
- 如果 Profile 本身还叠了其他 Context(如 Wi-Fi 状态),Exit Task 可能在 07:00 之前就执行了(因为 Wi-Fi 先断开)
- 如果只有 Time Context,Exit Task 在 07:00 准时执行
- 调试时如果觉得行为不对,先确认是不是跨午夜窗口 + 其他 Context 干扰
建议
时间上下文单独使用时非常可靠。与其他 Context 叠加时,注意理解 AND 语义——所有条件必须同时满足 Profile 才激活。