mcpField
A
android-workmanager-notifications

android-workmanager-notifications

github.com/krutikjain开发1478 次安装31 周前更新
代码仓库

关于 android-workmanager-notifications

android-workmanager-notifications 是用于规划和审查 Android 后台任务与通知的技能。它帮助选择 WorkManager、前台服务或闹钟,并关注重试、重复调度、权限和平台限制。

主要功能

  1. 01按任务选择执行 API
  2. 02明确唯一任务、重试和取消行为
  3. 03审查约束条件与加急任务
  4. 04考虑通知渠道及权限被拒后的处理
  5. 05检查重启、进程终止和重复调度

适用场景

  1. 01规划持久提醒
  2. 02审查后台同步流程
  3. 03检查通知权限被拒后的行为

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/krutikjain/android-agent-skills --skill android-workmanager-notifications

安装后在 Claude Code 中输入/android-workmanager-notifications确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
references/
official-links.md
patterns.md
scenarios.md
scripts/
run_examples.sh

详细介绍

Android WorkManager 通知

适用场景

  • 当请求涉及以下内容时使用此技能:Android WorkManager 任务、Android 后台提醒通知、可靠的 WorkManager 重试。
  • 主要目标:使用 WorkManager 和 Android 执行限制,安排可靠的后台工作、提醒和通知投递。
  • 需要 WorkManager、前台服务和闹钟 API 的选择矩阵时,阅读 references/patterns.md。
  • 需要了解唯一工作、通知权限和提醒投递的审查路径时,阅读 references/scenarios.md。
  • 范围扩展时,交接给以下技能:
  • android-permissions-activity-results
  • android-performance-observability

工作流

  1. 首先选择合适的执行 API:WorkManager 用于可延迟但必须执行的工作,前台服务用于持续且用户可见的工作,仅当确实需要时钟时间精度且符合政策要求时才使用精确闹钟。
  2. 通过明确的名称、输入数据约定、退避策略和取消行为,使工作具备幂等性且可唯一标识。
  3. 仅在符合用户价值和平台限制的情况下,应用约束、加急工作和重试语义。
  4. 将通知投递纳入功能约定:通知渠道、重要性、点击操作、运行时权限处理,以及通知被拒绝时的妥善处理方式。
  5. 在交接性能或权限专项后续工作之前,验证重复调度、重启/进程死亡和降级状态。

防护措施

  • 确保后台工作具备幂等性,并能响应取消。
  • 当功能代表一项逻辑上的提醒或同步流程时,使用唯一工作或唯一周期性工作。
  • 将加急工作视为稀缺且对用户有价值的资源;不要将其用作通用的队列插队标记。
  • 如果 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

评论

支持 Markdown