关于 android-workmanager-notifications
android-workmanager-notifications 是用于规划和审查 Android 后台任务与通知的技能。它帮助选择 WorkManager、前台服务或闹钟,并关注重试、重复调度、权限和平台限制。
主要功能
- 01按任务选择执行 API
- 02明确唯一任务、重试和取消行为
- 03审查约束条件与加急任务
- 04考虑通知渠道及权限被拒后的处理
- 05检查重启、进程终止和重复调度
适用场景
- 01规划持久提醒
- 02审查后台同步流程
- 03检查通知权限被拒后的行为
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ krutikjain/ android-agent-skills --skill android-workmanager-notifications安装后在 Claude Code 中输入/android-workmanager-notifications确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlreferences/official-links.mdpatterns.mdscenarios.mdscripts/run_examples.sh详细介绍
Android WorkManager 通知
适用场景
- 当请求涉及以下内容时使用此技能:Android WorkManager 任务、Android 后台提醒通知、可靠的 WorkManager 重试。
- 主要目标:使用 WorkManager 和 Android 执行限制,安排可靠的后台工作、提醒和通知投递。
- 需要 WorkManager、前台服务和闹钟 API 的选择矩阵时,阅读
references/patterns.md。 - 需要了解唯一工作、通知权限和提醒投递的审查路径时,阅读
references/scenarios.md。 - 范围扩展时,交接给以下技能:
android-permissions-activity-resultsandroid-performance-observability
工作流
- 首先选择合适的执行 API:WorkManager 用于可延迟但必须执行的工作,前台服务用于持续且用户可见的工作,仅当确实需要时钟时间精度且符合政策要求时才使用精确闹钟。
- 通过明确的名称、输入数据约定、退避策略和取消行为,使工作具备幂等性且可唯一标识。
- 仅在符合用户价值和平台限制的情况下,应用约束、加急工作和重试语义。
- 将通知投递纳入功能约定:通知渠道、重要性、点击操作、运行时权限处理,以及通知被拒绝时的妥善处理方式。
- 在交接性能或权限专项后续工作之前,验证重复调度、重启/进程死亡和降级状态。
防护措施
- 确保后台工作具备幂等性,并能响应取消。
- 当功能代表一项逻辑上的提醒或同步流程时,使用唯一工作或唯一周期性工作。
- 将加急工作视为稀缺且对用户有价值的资源;不要将其用作通用的队列插队标记。
- 如果 Worker 使用网络约束,请确保应用在较新的 Android 版本上声明这些约束所需的权限。
- 即使用户拒绝
POST_NOTIFICATIONS,也要保留通知的价值;应用仍需提供清晰的恢复途径。
反模式
- 在主线程上执行磁盘或网络调用,导致线程阻塞。
- 期待 WorkManager 像闹钟 API 一样按精确的墙上时钟时间投递。
- 不使用唯一工作策略,而是重新入队重复的提醒工作。
- 未创建通知渠道,或未处理用户拒绝通知权限的情况。
- 仅在注释中隐藏关键的前台服务或精确闹钟政策假设,而不在代码和文档中明确说明。
审查重点
- WorkManager 是此工作负载的合适 API 吗?
- 唯一工作策略、约束、重试和取消是否都已明确?
- 如果通知被拒绝,提醒和通知流程是否仍然合理?
- 加急工作、前台服务或精确闹钟行为是否有充分理由,且符合政策?
示例
正常流程
- 场景:在提出调度变更之前,查找后台工作和通知相关钩子。
- 命令:
rg -n "WorkManager|Worker|enqueueUnique|PeriodicWorkRequest|NotificationChannel|POST_NOTIFICATIONS" examples
边界情况
- 场景:审查精确闹钟、加急工作或受网络约束的工作,检查其对平台敏感的行为。
- 命令:
rg -n "setExpedited|setRequiredNetworkType|AlarmManager|ForegroundInfo" examples
故障恢复
- 场景:区分 WorkManager 请求、权限提示和性能工作。
- 命令:
python3 scripts/eval_triggers.py --skill android-workmanager-notifications
完成检查清单
- 所选执行 API 符合工作负载对时机和可见性的要求。
- 唯一工作、重试、取消和约束行为均已明确。
- 通知渠道和权限行为已作为功能约定的一部分妥善处理。
- 已考虑进程死亡、重启和重复调度时的行为。
Official References
- https://developer.android.com/topic/libraries/architecture/workmanager
- https://developer.android.com/develop/background-work/background-tasks/persistent/getting-started
- https://developer.android.com/develop/background-work/background-tasks/persistent/how-to/manage-work
- https://developer.android.com/develop/ui/views/notifications/build-notification
- https://developer.android.com/develop/ui/views/notifications/notification-permission
- https://developer.android.com/develop/background-work/background-tasks/optimize-battery
- https://developer.android.com/develop/background-work/services/alarms
评论
支持 Markdown