这就是我在项目中获取跟踪代码管理器密钥的方法。我正在使用单例类,因此它不会一次又一次地访问Tag Manager服务。
但是当我关闭并重新启动应用程序时,它会将容器置为空,并再次点击谷歌标记管理器服务。
我希望它在应用程序重新启动时拥有容器数据,因此它不会再次点击服务器至少12小时(容器的默认到期时间)。
请指导我。
public class ContainerHolderSingleton {
private static ContainerHolder containerHolder;
private ContainerHolderSingleton() {
}
public static ContainerHolder getContainerHolder() {
return containerHolder;
}
public static void setContainerHolder(ContainerHolder c) {
containerHolder = c;
}
}
TagManager
public String initTagManager(){
CONTAINER_ID= sampleApp.getAppContext().getResources().getString(R.string.tag_manager_id);
TagManager tagManager = TagManager.getInstance(context.getApplicationContext());
if(ContainerHolderSingleton.getContainerHolder() == null) {
PendingResult pending = tagManager.loadContainerPreferFresh(
CONTAINER_ID,
R.raw.gtmnh6xdp);
ContainerHolder containerHolder = (ContainerHolder) pending.await(2, TimeUnit.SECONDS);
ContainerHolderSingleton.setContainerHolder(containerHolder);
}
if (ContainerHolderSingleton.getContainerHolder().getStatus() != com.google.android.gms.common.api.Status.zzalw) {
kURL = staticURL;
}
container = ContainerHolderSingleton.getContainerHolder().getContainer();
if (ContainerHolderSingleton.getContainerHolder().getContainer() != null)
kURL = container.getString(TMURLKey);
if (kURL.isEmpty()) {
kURL = staticURL;
}
return kURL;
}