You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter端GrowthBook功能更新无法即时生效的解决方案咨询

Flutter GrowthBook 即时同步功能配置方案

你遇到的问题是因为仅在应用启动时初始化一次GrowthBook SDK,默认情况下SDK不会主动拉取配置更新,可通过以下方式实现即时同步:

1. 确保复用单例SDK实例

首先修正你的代码,避免每次访问gbApp都重新初始化(当前代码每次调用都会新建实例),改为单例模式:

GrowthBookSDK? _gbInstance;

Future<GrowthBookSDK> get gbApp async {
  if (_gbInstance == null) {
    _gbInstance = await GBSDKBuilderApp(
      hostURL: Env.gbHostUrl,
      apiKey: Env.gbClientKey,
      growthBookTrackingCallBack: (gbExperiment, gbExperimentResult) {
        // TODO: 添加埋点回调
      },
    ).initialize();
  }
  return _gbInstance!;
}

2. 手动触发配置刷新

在需要获取最新配置的时机(比如应用从后台切回前台、用户触发刷新操作),调用SDK实例的refreshFeatures()方法拉取最新配置:

// 获取单例实例
final gb = await gbApp;
// 拉取最新功能配置
await gb.refreshFeatures();
// 此时获取的功能值就是最新的
final isNewFeatureEnabled = gb.isOn('your-feature-key');

3. 配置自动轮询刷新

如果需要SDK定期自动同步配置,可以在初始化时设置refreshInterval参数(单位:秒),SDK会按照指定间隔自动拉取最新配置:

_gbInstance = await GBSDKBuilderApp(
  hostURL: Env.gbHostUrl,
  apiKey: Env.gbClientKey,
  growthBookTrackingCallBack: (gbExperiment, gbExperimentResult) {
    // TODO: 添加埋点回调
  },
  refreshInterval: 60, // 每60秒自动刷新一次
).initialize();

注意:自动轮询会增加网络请求次数,建议根据业务场景选择合适的间隔,或者结合手动刷新(比如后台激活时)来平衡实时性和性能。不要每次获取功能值前重新初始化SDK,这会导致性能损耗和状态不一致问题,复用单例+手动/自动刷新是最优方案。

内容的提问来源于stack exchange,提问作者Naufal Rajabi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 12:58:13