---
title: "优化 Android SDK 中的付费墙获取"
description: "可靠地获取 Adapty 付费墙：Android 的时机、缓存与备用方案。"
---

在 Android 上可靠地获取付费墙需要做到三点：渲染速度快、返回针对目标受众的付费墙，以及在网络较慢时能优雅降级。以下规则涵盖了实现这些目标所需的时机、缓存和备用方案。
:::tip
以下规则假定 `Adapty.activate()` 和 `Adapty.identify()` 均已完成。详情请参阅 [Android SDK 调用顺序](android-sdk-call-order)。
:::
## 注意事项与常见陷阱 \{#rules-and-pitfalls\}
| 应该这样做 | 不要这样做 | 原因 |
|---|---|---|
| 仅在即将展示时获取对应的版位。 | 启动时并发预取所有版位。 | 批量预取会阻塞主线程，导致启动期间出现黑屏。 |
| 在归因数据有机会解析后再调用 `getPaywall`，例如在 `activate` 之后等待 1–2 秒，或等待 `setOnProfileUpdatedListener` 触发后再调用。 | 在 `Application.onCreate()` 中调用 `getPaywall`。 | 此时归因数据尚未就绪，付费墙将按默认目标受众进行解析，静默绕过市场细分和 ASA 个性化配置。 |
| 为每个版位设置 `loadTimeout` 并配置[备用付费墙](fallback-paywalls)。 | 无限等待 `getPaywall` 返回。 | 没有超时限制时，网络较差的用户会看到空白屏幕，直到网络恢复——或者直接关闭应用。 |
有关 `fetchPolicy` 和 `loadTimeout` 参数的说明，请参阅[获取付费墙和产品](fetch-paywalls-and-products-android)；有关选择合适版位的说明，请参阅[版位](placements)。
## 针对弱网环境进行调优 \{#tune-for-poor-connectivity\}

针对网络状况持续较差的市场（农村地区、交通途中、受路由问题影响的地区）：

- 除首次请求外，每次获取付费墙时将 `fetchPolicy` 设置为 `AdaptyPlacementFetchPolicy.ReturnCacheDataElseLoad`。
- 在 Adapty 看板中为每个版位配置[备用付费墙](fallback-paywalls)。
- 将 `loadTimeout` 设置为 3–5 秒，并在超时触发时接受备用付费墙。
- 不要将付费墙的展示逻辑依赖于 `getProfile` 的返回结果。独立调用 `getPaywall`，避免因用户画像加载缓慢而阻塞界面。