Android函数文档生成器

9 浏览
1 试用
0 购买
Nov 29, 2025更新

本提示词专为Android开发场景设计,能够根据函数名称和功能描述,自动生成专业、准确的技术文档。它采用结构化思维,确保输出的函数说明包含完整的参数说明、返回值描述、使用示例和注意事项,帮助开发者快速理解函数用途和调用方式,提升代码可维护性和团队协作效率。生成的文档风格严谨专业,符合Android开发规范要求。

函数名称:loadImageAsync 简要描述:在主线程安全地将网络图片异步加载到 ImageView。支持占位图与错误图显示、圆角或圆形裁剪、内存与磁盘缓存,并在宿主生命周期内自动取消请求以避免资源泄漏。

参数详细说明

  • context: Context
    • 描述:用于创建图片加载请求、访问资源以及感知宿主生命周期(当 Context 关联到 Activity/Fragment 时)。
    • 约束:建议传入与目标 ImageView 所在界面关联的 Activity/Fragment 的 Context,以便启用生命周期自动取消;传入 Application Context 时通常无法感知界面生命周期。
  • imageView: ImageView
    • 描述:图片的目标视图,加载成功后会在主线程设置位图/Drawable。
    • 约束:需为当前界面中的有效视图实例;在视图已被销毁或移除时会自动取消或不再更新。
  • url: String
    • 描述:网络图片地址。
    • 约束:必须是有效的可访问 URL。空字符串或不合法的 URL 会导致加载失败并显示错误占位图。
  • placeholderRes: Int
    • 描述:加载过程中显示的占位图资源 ID。
    • 约束:应为有效的 drawable 资源 ID;无效资源 ID 可能导致不显示或抛出资源异常(取决于具体实现)。
  • errorRes: Int
    • 描述:加载失败时显示的错误占位图资源 ID。
    • 约束:应为有效的 drawable 资源 ID;当请求失败、URL 无效或被取消时显示。
  • transform: ImageTransform?
    • 描述:图片裁剪/圆角配置。可用于实现圆形裁剪或指定圆角半径等样式。
    • 约束:传入 null 表示不进行变换;具体字段与构造方式请参阅 ImageTransform 类型定义。通常缓存会基于 url 与 transform 组合键进行区分。
  • onComplete: (Boolean) -> Unit
    • 描述:加载完成回调。参数为 true 表示成功设置到 ImageView,false 表示失败或请求被取消。
    • 约束:回调仅在请求结束时触发一次。请避免在回调中持有对 Activity/Fragment 的强引用,以免造成泄漏。

返回值说明

  • 类型:Unit
  • 说明:函数本身不返回结果;加载状态通过 onComplete 回调传递。加载过程异步执行,UI 赋值在主线程进行。

使用示例代码

class ProfileFragment : Fragment(R.layout.fragment_profile) {

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        val avatarView = view.findViewById<ImageView>(R.id.avatar)

        // 示例:不进行变换
        loadImageAsync(
            context = requireContext(),
            imageView = avatarView,
            url = "https://example.com/user/avatar.jpg",
            placeholderRes = R.drawable.ic_avatar_placeholder,
            errorRes = R.drawable.ic_avatar_error,
            transform = null,
            onComplete = { success ->
                if (success) {
                    // 加载成功后的逻辑(例如打点或启用交互)
                } else {
                    // 加载失败后的逻辑(例如提示或重试入口)
                }
            }
        )
    }
}

注意事项和异常处理

  • 生命周期自动取消
    • 当传入的 Context 关联到 Activity/Fragment 且可获取宿主生命周期时,请求会在宿主销毁时自动取消,避免更新已销毁的视图与内存泄漏。
    • 若使用 Application Context,通常无法自动取消;请在界面销毁时自行确保不再使用该 ImageView。
  • 线程与并发
    • 加载过程为异步操作;UI 更新在主线程执行,无需手动切换线程。
    • 对同一 ImageView 发起新的请求会取消或覆盖旧请求,以防止视图显示错乱。
  • 资源与参数校验
    • placeholderRes 与 errorRes 必须为有效 drawable 资源 ID;传入无效资源可能导致显示异常或资源访问错误。
    • url 应为可访问的网络地址;无效或不可达的地址会触发错误占位图与失败回调。
  • 变换与缓存
    • 内存/磁盘缓存通常将 transform 作为缓存键的一部分;更改裁剪配置会导致重新解码与缓存写入。
    • 若远端图片内容变更但 URL 不变,可能会命中缓存显示旧图。需要强制刷新时,请更改 URL(例如追加版本参数)或使用模块提供的缓存清理能力。
  • RecyclerView 等列表场景
    • 视图复用频繁,建议在绑定时立即调用该函数,并依赖自动取消机制避免旧请求回调到新复用的视图。
  • 回调使用
    • onComplete 回调仅用于通知结果状态;避免在回调中进行耗时操作或持有界面的强引用,以免造成卡顿与泄漏。

相关函数或模块链接

  • 所属模块:UI/图片与媒体
  • 类型说明:ImageTransform(请参阅该类型的具体字段与构造方式)
  • 缓存与清理:如需缓存策略或清理机制的详细说明,请参阅 UI/图片与媒体 模块文档与缓存章节。

函数名称:requestLocationOnce — 请求一次高精度定位

简要描述:

  • 发起一次高精度定位请求,自动检查并申请所需定位权限。
  • 在指定超时时间内未获取到实时位置时,回退返回最近一次缓存位置。
  • 通过回调返回经纬度与精度信息,完成后自动移除定位更新监听,避免资源泄漏。
  • 适用于前台组件(Activity)内的单次定位场景。

参数详细说明:

  • activity: ComponentActivity
    • 说明:用于权限申请与生命周期绑定的上下文组件。请在组件处于有效生命周期(如已启动/可见)时调用。
    • 约束:不可为 null;建议为当前前台页面的 Activity 实例。
  • timeoutMs: Long
    • 说明:定位超时时间,单位为毫秒。超过该时间仍未获取到实时位置时,将回退到最近一次缓存位置。
    • 约束:应为正整数;过短可能导致频繁回退到缓存位置,过长会增加等待时间。
  • priority: LocationPriority
    • 说明:定位精度策略,用于控制定位的精度与耗电/延迟权衡。具体可选值以项目中该类型定义为准。
    • 约束:传入合法的策略枚举/配置;不合法的策略可能被忽略或导致请求失败。
  • onResult: (Location) -> Unit
    • 说明:定位成功回调,仅回调一次。可能为实时位置或在超时后返回的最近一次缓存位置。
    • 返回数据:Location 对象,包含至少以下信息:
      • latitude:纬度(Double)
      • longitude:经度(Double)
      • accuracy:精度(米,Float/Double,依实现而定)
  • onDenied: () -> Unit
    • 说明:权限被拒绝时触发的回调(包括用户明确拒绝的情况)。仅回调一次。

返回值说明:

  • 本函数为异步操作,无直接返回值(Unit)。
  • 结果通过回调返回:
    • 成功:触发 onResult,提供 Location(实时或缓存)。
    • 权限拒绝:触发 onDenied。
  • 完成回调后自动移除定位更新监听,无需手动清理。

使用示例代码:

class SampleActivity : ComponentActivity() {

    fun fetchLocationOnce() {
        requestLocationOnce(
            activity = this,
            timeoutMs = 10_000L, // 10 秒超时
            priority = /* 根据项目定义选择合适策略,例如:LocationPriority.HighAccuracy */,
            onResult = { location ->
                val lat = location.latitude
                val lng = location.longitude
                val acc = location.accuracy
                // 使用定位结果,例如上传或展示
                // updateUi(lat, lng, acc)
            },
            onDenied = {
                // 展示权限被拒绝的提示或引导用户查看权限设置
                // showPermissionDeniedDialog()
            }
        )
    }
}

注意事项和异常处理:

  • 权限:
    • 函数会自动检查并申请定位权限;若用户拒绝,将触发 onDenied。
    • 已授予权限的情况下不会再次弹窗。
  • 生命周期与上下文:
    • 需传入当前有效的 ComponentActivity;若组件已销毁或不可见,可能导致权限流程或定位请求无法正常进行。
  • 超时与缓存:
    • 超时后回退到最近一次缓存位置。缓存位置可能与实时位置存在偏差,请根据业务判断可用性。
    • 建议为 timeoutMs 设定合理值,以平衡等待时长与缓存回退的概率。
  • 回调调用次数:
    • onResult 与 onDenied 均为单次回调;不会重复触发。
  • 线程与耗时操作:
    • 回调中的处理请避免阻塞(例如长时间 I/O),以免影响界面体验。
  • 监听清理:
    • 函数在回调后会自动移除定位更新监听,无需额外清理。

相关函数或模块链接:

  • 所属模块:位置/权限
  • 相关:位置权限申请与单次定位功能(具体链接或文档条目以项目实际文档为准)

函数名称:fetchJsonWithCache 简要描述:从指定 URL 获取 JSON 数据,结合 ETag/Last-Modified 进行条件请求与本地磁盘缓存。支持在网络不可用时使用有效缓存进行离线回退,并处理请求超时。成功时将响应解析为 JSONObject 并通过回调返回,失败时通过错误回调返回异常。

参数详细说明

  • url: String
    • 描述:请求地址,需为可访问的绝对 HTTP/HTTPS URL。
    • 约束:必须为有效的 URL;建议使用 HTTPS 以保障安全。
  • cacheKey: String
    • 描述:本地磁盘缓存的键,用于标识与复用对应的缓存条目(包含响应体、ETag、Last-Modified、写入时间戳)。
    • 约束:在同一数据集内需保持唯一与稳定;变更后将视为不同缓存。
  • maxAgeMinutes: Int
    • 描述:缓存有效期(分钟)。用于控制离线回退时是否允许使用缓存。
    • 约束:应为正整数(> 0);过期缓存不会在离线回退中使用。
  • headers: Map<String, String>
    • 描述:追加到 HTTP 请求的额外请求头。
    • 约束:键与值均为非空字符串;若包含 If-None-Match 或 If-Modified-Since,可能被内部的条件请求头覆盖或与其冲突,建议不要自行设置这两个头。
  • onSuccess: (JSONObject) -> Unit
    • 描述:成功回调,提供解析后的 JSONObject。
    • 调用约束:仅调用一次;回调线程未作保证,调用方如需在主线程处理,请自行切换线程。
  • onError: (Throwable) -> Unit
    • 描述:失败回调,提供导致失败的异常信息。
    • 调用约束:仅调用一次;当网络不可用且缓存不存在或已过期、HTTP 非 2xx、超时、解析失败等情况将触发。

返回值说明

  • 返回类型:Unit(异步执行)
  • 结果交付:通过 onSuccess 或 onError 二选一回调交付结果,不直接返回数据。
  • 成功条件:
    • 在线场景:服务端返回 200 及合法 JSON;或返回 304 时读取缓存成功。
    • 离线场景:存在未过期(maxAgeMinutes 内)缓存并读取成功。
  • 失败条件:
    • URL 无效、网络不可用且无有效缓存、请求超时、HTTP 非 2xx/304、响应体为空或非合法 JSON、磁盘读写异常等。

函数行为与数据处理流程(概要)

  • 条件请求与缓存协作
    • 若缓存中存在 ETag 或 Last-Modified:
      • 在线发起条件请求,分别设置 If-None-Match 与/或 If-Modified-Since。
      • 响应 304 Not Modified:读取并返回缓存 JSON。
      • 响应 200 OK:更新缓存(响应体 + 新的 ETag/Last-Modified + 写入时间戳),返回新的 JSON。
    • 若无缓存元数据:直接 GET,成功后写入缓存。
  • 离线回退
    • 检测网络不可用时,若存在未过期缓存(当前时间 - 写入时间 ≤ maxAgeMinutes):直接返回缓存。
    • 无缓存或缓存过期则走错误回调。
  • 请求超时
    • 超时作为失败处理,触发 onError;超时时间由内部实现或全局网络配置决定。

使用示例代码

// 调用示例(Kotlin)
fetchJsonWithCache(
    url = "https://api.example.com/v1/profile",
    cacheKey = "profile_v1",
    maxAgeMinutes = 30,
    headers = mapOf(
        "Authorization" to "Bearer <token>",
        "Accept" to "application/json"
    ),
    onSuccess = { json ->
        // 解析字段示例(确保服务端返回顶层为对象)
        val name = json.optString("name")
        val age = json.optInt("age", -1)
        // 更新 UI:如需在主线程,请切换线程(例如使用 Handler/Dispatchers.Main)
    },
    onError = { error ->
        // 统一错误处理与提示
        // 可根据异常类型进行分支处理(超时、网络不可用、解析失败等)
        // 例如:Log.e("fetchJsonWithCache", "request failed", error)
    }
)

注意事项和异常处理

  • 顶层 JSON 类型:onSuccess 回调的参数类型为 JSONObject,若服务端返回顶层为数组或非 JSON,解析将失败并触发 onError。请确保接口返回顶层为对象,或在服务端调整格式。
  • 缓存键设计:cacheKey 应与接口路径及业务版本强关联;若接口字段或结构变更,请更换 cacheKey 以隔离旧缓存。
  • 有效期控制:离线回退仅在缓存未过期时进行;过期缓存不会返回。若需“过期但可用”的策略,请在调用侧增加降级逻辑(例如自行读取缓存文件)。
  • 条件请求头冲突:内部会设置 If-None-Match/If-Modified-Since(基于缓存元数据)。请勿在 headers 中重复设置这两个头,以避免不可预期行为。
  • 回调线程:不保证在主线程回调。UI 更新前请切换到主线程。
  • 错误类型(可能的 Throwable)
    • IllegalArgumentException:URL 不合法或参数不符合约束。
    • IOException/UnknownHostException:网络错误或域名解析失败。
    • SocketTimeoutException:请求超时。
    • JSONException:响应体无法解析为 JSONObject。
    • 其他 I/O 异常:磁盘读写失败、缓存损坏等。
  • 数据一致性:在同一 cacheKey 上并发请求可能引起缓存写入竞争;如需严格一致性,请在调用侧序列化请求或加锁。
  • 安全建议:优先使用 HTTPS;避免在 headers 中传递敏感信息的明文。

相关函数或模块链接

示例详情

解决的问题

让每个Android函数,都拥有一份可直接发布的专业文档。通过一次输入,快速产出包含用途说明、参数解释、返回结果、示例代码与注意事项的完整说明,帮助你:

  • 缩短文档编写时间,专注核心开发
  • 统一团队文档口径,减少沟通与误用风险
  • 加速新人上手、代码评审与重构决策
  • 将知识沉淀到Wiki/注释/评审材料中,持续可复用 适用于日常开发、迭代评审、重构治理、外包交付与开源项目维护等场景,驱动高质量协作与更稳定的交付结果。

适用用户

Android开发工程师

在编写或重构代码时,快速生成完整函数说明,补全参数约束和返回含义,附带可直接粘贴的调用示例,提交前自查边界与异常。

技术负责人与代码审查者

为待合并的代码变更批量生成规范化文档,统一术语与格式,快速发现未覆盖的输入、边界与错误处理,缩短评审周期。

新入职开发者与实习生

通过清晰的函数文档快速理解模块职责与调用方式,按示例上手开发,减少反复沟通,加速融入代码库。

特征总结

一键生成标准化函数说明,含参数、返回值、示例与注意事项,交付即可用文档。
基于函数名称与用途自动补全关键信息,避免遗漏边界条件与输入约束。
内置符合Android规范的写作框架,统一术语与格式,团队内外读起来一致。
自动生成可直接粘贴的调用示例,示范典型场景与异常分支,加速开发与调试。
智能校对描述的准确性与一致性,减少主观表述与歧义,降低沟通返工。
支持按模块分类与相关链接归档,让函数与所属组件、业务流程一目了然。
可按团队规范自定义段落与字段顺序,快速适配现有模板与评审流程。
输入函数名与用途即可批量化生成,日常维护与新成员入职均能立刻上手。
从参数约束到异常返回逐项列明,帮助测试与评审直接据此设计用例与检查点。
严格遵守不夸大、不编造原则,确保文档可信可追溯,适用于审计与合规场景。

如何使用购买的提示词模板

1. 直接在外部 Chat 应用中使用

将模板生成的提示词复制粘贴到您常用的 Chat 应用(如 ChatGPT、Claude 等),即可直接对话使用,无需额外开发。适合个人快速体验和轻量使用场景。

2. 发布为 API 接口调用

把提示词模板转化为 API,您的程序可任意修改模板参数,通过接口直接调用,轻松实现自动化与批量处理。适合开发者集成与业务系统嵌入。

3. 在 MCP Client 中配置使用

在 MCP client 中配置对应的 server 地址,让您的 AI 应用自动调用提示词模板。适合高级用户和团队协作,让提示词在不同 AI 工具间无缝衔接。

AI 提示词价格
¥20.00元
先用后买,用好了再付款,超安全!

您购买后可以获得什么

获得完整提示词模板
- 共 550 tokens
- 4 个可调节参数
{ 函数名称 } { 函数功能 } { 参数信息 } { 所属模块 }
获得社区贡献内容的使用权
- 精选社区优质案例,助您快速上手提示词
限时免费

不要错过!

免费获取高级提示词-优惠即将到期

17
:
23
小时
:
59
分钟
:
59