# looptimer-android **Repository Path**: nmgmpx/looptimer-android ## Basic Information - **Project Name**: looptimer-android - **Description**: 一个简单计时器 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-19 - **Last Updated**: 2026-05-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # looptimer-android #### 介绍 LoopTimer 是一款 Android 循环倒计时器,全程由Claude Code编写。设定时长后,计时到点播放音效,自动进入下一轮循环。支持前台服务保活、锁屏计时、电池优化豁免,适配 MIUI/HyperOS 等国产系统。 #### 软件架构 - **语言:** Kotlin - **UI:** Jetpack Compose + Material 3 - **持久化:** DataStore Preferences - **通知:** NotificationCompat(前台服务 + 闹钟提醒) - **闹钟:** AlarmManager(setAlarmClock 精确唤醒) - **音效播放:** MediaPlayer(异步回调,不阻塞主线程) - **最低 SDK:** 26(Android 8.0) | **目标 SDK:** 34 ``` app/src/main/java/com/mytimer/app/ ├── MainActivity.kt # 入口 Activity,电池优化请求 ├── alarm/ │ ├── AlarmReceiver.kt # 闹钟广播接收器,播放音效并推进循环 │ └── AlarmScheduler.kt # 闹钟调度(setAlarmClock) ├── data/ │ └── Preferences.kt # DataStore 持久化(时长、音效、运行状态) ├── model/ │ └── TimerUiState.kt # UI 状态数据类 ├── notification/ │ └── NotificationHelper.kt # 通知管理(运行中通知 + 闹钟通知) ├── ringtone/ │ └── RingtonePlayer.kt # 异步音效播放器 ├── service/ │ └── TimerForegroundService.kt # 前台服务(通知栏持久化) └── ui/ ├── CountdownScreen.kt # 主界面(环形进度、控制按钮) ├── CountdownViewModel.kt # 计时逻辑、状态管理 ├── components/ │ ├── DurationPicker.kt # 时长选择器 │ └── SoundPickerDialog.kt # 音效选择器 └── theme/ └── Theme.kt # 自定义 Cyan 暗色主题 ``` #### 安装教程 1. Clone 本仓库:`git clone https://gitee.com/nmgmpx/looptimer-android.git` 2. 用 Android Studio 打开项目目录,等待 Gradle 同步完成 3. 连接 Android 设备或启动模拟器,点击 Run 运行 #### 使用说明 1. 首次启动需授予**忽略电池优化**权限,确保后台计时不被系统杀死 2. 点击「时长」设置倒计时时间(时/分/秒可调,支持 ±10 快速调整),点击「音效」选择提醒铃声,点击 ♪ 可试听 3. 点击「开始」启动计时;锁屏或切到后台后,通知栏持续显示进度;到点自动播放音效并进入下一轮 #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request