当前位置:首页 » 硬盘大全 » 应用本地缓存如何更新
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

应用本地缓存如何更新

发布时间: 2023-03-29 11:10:06

① 华为手机没有本地更新

华为手机找不到系统和更新
数码小达人麦子
应答时长 10分钟
提问
摘要请确认手机是否root,如果已经root过了,请提前备份好数据后(微信/QQ等应用需单独备份)携带购机凭证前往华为客户服务中心检测。如果没有root,建议按以下方法排查:1. 检查网络可能由于网络原因未收到推送。建议在网络环境良好的情况下重新检查新版本:打开设置,搜索进入系统更新/软件更新,点击检查更新。2. 清除系统更新应用缓存a. 清除系统更新应用缓存EMUI 8.X:进入设置,搜索进入应用管理,找到系统更新,点击存储 > 删除数据;EMUI 9.X/10.X/11.X & Magic UI 2.X/3.X:进入设置,搜索进入应用管理,找哪哪樱到软件更缓配新,点击存储 > 删除数据;b. 重新检测版本进入设置,搜索进入系统更新/软件更新,点击检查更新检测有无新版本,如果未检测到新版本,可在更新页面点击三个点图标 > 下载最新完整包,查看是否有最新的全量包。注意:EMUI9.0.1 & Magic UI 2.0.1及以上系统无下载最新完整包功能3. 可能版本暂未推送考虑到各机型用户多,为了用户的升级体验,新版本升级提醒是分批次推送的
咨询记录 · 回答于2022-12-13
华为手机找不到系统和更新
请确认手机是否root,如果已经root过了,请提前备份好数据后(微信/QQ等应用需单独备份)携带购机凭证前往华为客户服务中心检测。如果没有root,建议按以下方法排查:1. 检查网络可能由于网络原因未收到推送。建议在网络环境良好的情况下重新检查新版本:打开设置,搜索进入系统更新/软件更新,点击检查更新。2. 清除系统更新应用缓存a. 清除系统更新应用缓存EMUI 8.X:进入设置,搜索进入应用管理,找到系统更新,点击存储 > 删除数据;EMUI 9.X/10.X/11.X & Magic UI 2.X/3.X:进入设置,搜索进入应用管理,找到软件更新,点击存储 > 删除数据;b. 重新检测版本进入设置,搜索进入系统更新/软件更新,点击检查更新检测有无新版本,如果李丛未检测到新版本,可在更新页面点击三个点图标 > 下载最新完整包,查看是否有最新的全量包。注意:EMUI9.0.1 & Magic UI 2.0.1及以上系统无下载最新完整包功能3. 可能版本暂未推送考虑到各机型用户多,为了用户的升级体验,新版本升级提醒是分批次推送的
如果以上方法仍然无法解决,请提前备份好重要数据(微信/QQ等应用需单独备份),携带购机凭证前往华为客户服务中心检测处理。

② 华为应用市场怎么更新不了软件

如果您使用的是华为手机,在应用市场无法下载软件,可以通过以下方法排查操作:
1.检查当前网络是否正常。确认手机管家 > 流量管理 > 应用联网 > 应用市场 > 移动数据是否勾选(WLAN默认勾选),是否允许应用市场联网。如已确认联网正常仍无法下载,请打开浏览器,检查移动数据及连哪源扮裂罩接WiFi数据下查看能否正常浏览网页。如果不能,请更换其它网络环境后再尝试重新下载软件。
2.检查当前手机内存是否足够(设置 > 存储 > 清理加速),一般需要安装包3倍以上的空间才可以进行安装。
3.检查应用市场是否为最新版本,如果不是,可更新到最新版本后再尝试重新下载。检查/更新方法:点击应用市场我的 > 设置 > 检查更新 进行更新。
4.尝试清空缓存。进入手机存储界面清空缓存后再重新下载软件,进入路径为:
HarmonyOS:设置 > 应用和服务 > 应用管理 > 华为应用市场 > 存储 > 清空缓存
手机版本为EMUI9.0及以上/Magic UI:设置 > 应用 > 应用管理 > 华为应用市场 > 存储 > 清空缓存;
手机版本为EMUI8.0及以上:设置 > 应用和通知 > 应用管理 > 华为应用市场 > 存储 > 清空缓存;
手机版本为EMUI8.0以下:设置 > 应用管理 > 华为应用市场 > 存储 > 清空缓存;
查看手机版本方法:设置 > 系统 > 关于手机 > 版本号(EMUI10.0以下)或设置 > 关于手机 > 版本号(EMUI10.0及以上)查看。
5.在手机设置 > 应用 > 应用管理 > 华为应用市场 > 右上角三个点/四个点 > 卸载更新将应用市场卸载回退到出厂版本,打开检查出厂版本是否可以正常下载,若正常再重新更新最新版本后使用。(卸载更新李灶回退至出厂版本是排查当前最新版本应用市场是否有异常)

③ 如何让自己做的游戏可以更新

一.服务器安装
1.把下载后的文件解压
2.服务器上建立共享目录,如:\\server\游戏菜单\
3.解压出来的文件夹里的客户端下所有文件复制到刚才创建的共享目录下
4.至此,服务器安装完毕,必要的设置下面会详细的介绍。
二.验证端安装
1.把验证端整个目录复制到验证服务器上去(任意一台机器都可以,插上加密锁)
2.为了保证验证端一直有效的运行,请直接用启动验证端.exe运行,等待5秒后验证端自动打开,并会长驻内存,保护验证端一直开启
3.默认情况下,验证端的端口为3001,如果需要更改请在验证程序里修改。
三.客户端安装
1.复制调用程序文件夹到客户机上,位置自己随意,并按照自己的需要重命名文件夹
2.调用程序文件如下图表示
3.如果你需要只读更新,不使用只读更新则跳过看第4部,请打开只读设置.exe
该用户名为客户端最高权限的帐号,当利用此程序执行其他应用程序后,会自动以最高权限运行。
如果你的调用程序放在 c:\调用程序\的话,运行就是 c:\调用程序\新调用.exe
4.打开cfg.ini
按上面的说明,再按照自己的实际路径和ip进行设置。
5.如果是只读更新的则用该目录下的只读调用.exe做成快捷方式,并放到桌面,改名为游戏菜单;
如闭册物果是不用只读更新的,则使用该目录下的新调用.exe做成快捷方式,并放到桌面,改名为游戏菜单;
6.至此,客户端设置完毕!运行桌面上的游戏菜单,如果设置正确,即可打开游戏菜单
四.初始设置
1.首先打开配置工具目录下的配置工具
2.第一次使用会让你选择客户端的目录
选择后点确定轿液,即可打开配置工具
4.首次使用,直接按回车进入。
五.常规设置
1.当点击常规设置后,服务器IP必须为游戏更新服务器的IP,系统会自动PING该IP,如果不通则认为服务器已经关闭,所以有防火墙的用户,应该姿埋保证
能PING通该IP才可以。
验证服务器就是你开启验证端的那台机器的IP,端口默认3001
2.其他设置都是很容易理解的,这里说明一下存档设置。
存档保存目录必须为远程可写目录。
允许存档数量是指:单个游戏允许有几个存档
U盘容量是指:每个用户自己的U盘空间(此功能为新加功能,类似于QQ网络硬盘
3.机器信息按钮是指,当你设置了日志保存目录时,可以方便的查看各客户机的磁盘使用情况以及硬件信息,每个客户端当启动菜
单时会自动把自己机器的信息上传到日志保存目录。
六.更新设置
1.添加的文件支持任意文件,包括(可执行文件,文件夹,快捷方式,以及其他文件,如:txt文件)。
2.如果需要进行改变图标的位置,请直接拖曳图标,并移动到所需要移动的位置的图标上,即可插入到该图标前面。
3.按F2可以进行重命名,按F3可以进入编辑模式,按Delete键可以删除所选择的项目(支持多选)
4.在图标上右键也可以选择如上的操作,双击图标则进入编辑模式,等于按下了F3键
5.在空白位置双击可选择更换背景图片,支持jpeg,jpg,bmp格式的图片
6.允许选择背景颜色,以及字体大小,颜色等。
7.所有操作完毕后,请按保存设置键进行保存,否则所有设置都将丢失!当你进行其他操作时,系统会自动提示你是否保存设置。
七.游戏编辑
1.在所选择的游戏上双击,或者按F3,或者右键菜单中选择游戏编辑即可进入
模式一:
2.此界面分两种,一种是 特殊功能 选择的是游戏外挂。即表示此功能只限做游戏外挂使用
3.游戏名字无法更改,请在主界面处按F2进行修改名字。
4.游戏说明,当客户端中鼠标指到该游戏时会自动显示简单的说明
5.更新方式,一种为普通更新方式,最简单,但是服务器负担重。另一种是缓存更新方式,即把服务器的文件列表保存下来,客户机更新时对比只和列表做对比,可以加快对比速度,特别是在服务器负担很种的情况下越明显。如果选择了缓存更新方式,请一定手动按一下更新缓存按钮,否则无列表仍会自动切换到普通更新模式。如果存在有旧的列表,当你远程目录中的内容发生变化时,请即使重新生成更新缓存,否则缓存过旧会影响更新内容。
6.远程目录,即服务器存放外挂的目录,这里设外挂根目录即可
7.本地目录,服务器更新下来的外挂的存放目录,推荐放置在不保护的盘中。
模式二:
8.排除目录需要输入相对路径如 data\,而不是 e:\热血江湖\data\
9.排除文件需要输入相对路径,而且支持通配符,比如 data\*.dat ,支持 *,? 通配符
10.存档设置,需要输入绝对路径,可以包含多个目录,并且支持其他目录的文件,比如c:\test\*.*,也可以保存整个目录 ,如:c:\test\
11.如果设置缓存更新,请一定要更新缓存,当服务器上游戏更改时也一定要手动生成一下更新缓存

④ 手机的软件不能更新是怎么回事

可参考vivo手机软件无法更新处理方法:
1、进入设置--应用与权限/更多设置--应用管理/应用程序--(全部)--找到应用商店--清除应卜御用商店缓存的数据看看;轮闷
2、更换网速较好的网络下载看看;
3、将软件卸载后腊弊弯,在应用商店下载最新版本看看;
4、进入i管家--空间清理--删除垃圾缓存后再尝试;
5、清除所有数据,再重新下载新版本尝试(需备份数据)。

⑤ 电脑microsoftstore怎么更新

如果你正在使用Windows 10操作系统,请按以下步骤更新Microsoft Store应用程序:

1. 点击Windows 10任务栏上氏塌的Microsoft Store图标,打开应用程序。

2. 在Microsoft Store中,点击右上角的3个点图标,选择“下载和更新”。

3. 在“下载和更新”页面中,点击“获取更新”按钮。

4. 如果有可用的更新,它们将显示在列表中。点击“更新全部”按钮来开始更兄核卜新。

5. 等待更新过程羡穗完成,应用程序会自动下载并安装更新。

如果你发现Microsoft Store应用程序无法更新,你可以尝试以下方法:

1. 检查你的网络连接,确保你的网络连接正常。

2. 清除Microsoft Store的缓存。在“设置”中选择“应用和功能”,然后找到Microsoft Store,点击它并选择“高级选项”,接着点击“重置”按钮来清空缓存。

3. 执行系统更新,可能有其他的更新整合着Microsoft Store程序,这会导致无法正常更新。

如果以上方法都无法解决问题,请考虑卸载并重新安装Microsoft Store应用程序。

⑥ 小程序游戏怎么变新用于

微信小游戏如何实现强制更新版本
点滴 admin 2个月前 (10-12) 923次浏览 已收录 0个评论
在做微信小程序的时候,深知版本更新的重要,对于微信小游戏自然也相当的重要。

那么怎么在微信小游戏里面实现强制更新版本呢?

小程序更新机制
未启动时更新
开发者在管理后台发布新版本的小程序之后,如果某个用户本地有小程序的历史版本,此时打开的可能还是旧版本。微信客户端会有若干个时机去检查本地缓存的小程序有没有更新版本,如果有则会静默更新到新版本。总的来说,开发者在后台发布新版本之后,无法立刻影响到所有现网用户,但最差情况下,也在发布之后 24 小时之内下发新版本信息到用户。用户下次打开时会先更新最新版本再打开。

启动时更新
小程序每次冷启动时,都会检查是否有更新版本,如果发现有新版本,将会异步下载新版本的代码包,并同时用客户端本地的包进行启动,即新版本的小程序需要等下一次冷启动才会应用上。

如果需要马上应用最新版本,可以使用 wx.getUpdateManager API 进行处理。

const updateManager = wx.getUpdateManager()

updateManager.onCheckForUpdate(function (res) {
// 请求完新版本信息的回调
console.log(res.hasUpdate)
})

updateManager.onUpdateReady(function () {
wx.showModal({
title: '更新提示',
content: '新版本已经准备好,是否重启应用?',
success(res) {
if (res.confirm) {
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
updateManager.applyUpdate()
}
}
})
})

updateManager.onUpdateFailed(function () {
// 新版本下载失败
})
微信小游戏是有离线缓存的机制,也就是说如果拍谨这台手机之前玩过某个游戏,再打开游戏的时候是先加载启动手机袭缓基本地缓存住的代码包,这个代码包是旧的,之后才会在后哪丛台向微信服务器下载最新的代码包。

微信小游戏上线后,新开发了一个功能或修复了一个重大Bug,想让用户打开游戏的时候就下载运行最新的代码包,而不是运行旧的代码包。

有没有解决办法呢?当然是有的!微信小游戏提供了一个 api wx.getUpdateManager() 来解决这个问题

核心方法:
UpdateManager.onCheckForUpdate(function callback)
监听该事件后微信向后台检查更新结果完会回调callback方法,如果有更新的版本,回调参数里hasUpdate属性为true。

微信在小程序冷启动时自动检查更新,不需由开发者主动触发。

UpdateManager.onUpdateReady(function callback)
监听该事件后微信下载完新版的代码包时会回调callback方法。客户端主动触发下载(无需开发者触发),下载成功后回调

UpdateManager.applyUpdate()
在onUpdateReady下载完新代码包后调用该方法强制小程序重启并使用新版本。

特别注意:

微信小游戏基础库 需要1.9.90以上版本才支持。针对老版本客户端需要做好兼容。
该更新机制只是在游戏冷启动的时候会触发,热启动的时候是不会进行更新判断的。
微信开发者工具上可以通过“编译模式”下的“下次编译模拟更新”开关来调试。
字节小游戏、QQ小游戏、网络小游戏的更新机制和微信小游戏是一样的。

⑦ 如何清理应用缓存呢

将APP的缓存清理即可,这里以iPhone7手机为例,具体方法如下:

一、首先在手机桌卖桥面点击“设置”。

二、然后中哪猛在设置界面选择“通用”选项。

三、接着打开“储存空间与iCloud用量”进入缓缺。

四、进入以后选择“管理储存空间”。

五、然后找到要清理缓存的应用进入。

六、进入以后点击“清理缓存”即可。

⑧ 如何使用Guava的缓存管理

首先,看一下使用范例:

Java代码
LoadingCache<Key,Graph> graphs =CacheBuilder.newBuilder()
.maximumSize(1000)
.expireAfterWrite(10,TimeUnit.MINUTES)
.removalListener(MY_LISTENER)
.build(
newCacheLoader<Key,Graph>(){
publicGraph load(Key key)throwsAnyException{
return createExpensiveGraph(key);
}
});
适用性
缓存在很多情况下都是非常有用的。比如,我们需要多次根据给定的输入获取值,而且该值计算或者获取的开销是非常昂贵的。
缓存和ConcurrentMap是非常相像的,但是它们也不完全一样。最根本的区别就是,ConcurrentMap会持有所有添加的对象,直到被显示的移除。而缓存为了限制其内存的使用,通常都会配置成可以自动的将对象移除。在某些情况下即使不自动移除对象也是非常有用的,如LoadingCache它会自动加载缓存对象。
一般,Guava缓存适用于以下几种情况:
你愿意花费一些内存来换取性能提升;
你预测到某些键会多次进行查询;
你的缓存数据不超过内存(Guava缓存是单个应用中的本地缓存。它不会将数据存储到文件中,或者外部服务器。如果不适合你,可以考虑一下 Memcached)。
如果你的需要符合上面所说的每一条,那么选择Guava缓存绝对没错。
使用CacheBuilder的构建模式可以获取一个Cache,如上面的范例所示。但是如何进行定制才是比较有趣的。
注意:如果你不需要缓存的这些特性,那么使用ConcurrentHashMap会有更好的内存效率,但是如果想基于旧有的ConcurrentMap复制实现Cache的一些特性,那么可能是非常困难或者根本不可能。
加载
对于缓存首先需要明确的是:有没有一个方法可以通过给定的键来计算/加载相应的值?如果有,那么可以使用CacheLoader。如果没有这样的方法,或者你想复写缓存的加载方式,但你仍想保留“get-if-absent-compute”语义,你可以在调用get方法时传入一个Callable实例,来达到目的。缓存的对象可以通过Cache.put直接插入,但是自动加载是首选,因为自动加载可以更加容易的判断所有缓存信息的一致性。
From a CacheLoader
LoadingCache 缓存是通过一个CacheLoader来构建缓存。创建一个CacheLoader仅需要实现V load(K key) throws Exception方法即可。下面的范例就是如何创建一个LoadingCache:
Java代码
LoadingCache<Key,Graph> graphs =CacheBuilder.newBuilder()
.maximumSize(1000)
.build(
newCacheLoader<Key,Graph>(){
publicGraph load(Key key)throwsAnyException{
return createExpensiveGraph(key);
}
});

...
try{
return graphs.get(key);
}catch(ExecutionException e){
thrownewOtherException(e.getCause());
}
通过方法get(K)可以对LoadingCache进行查询。该方法要不返回已缓存的值,要不通过CacheLoader来自动加载相应的值到缓存中。这里需要注意的是:CacheLoader可能会抛出Exception,LoaderCache.get(K)则可能会抛出ExecutionException。假如你定义的CacheLoader没有声明检查型异常,那么可以通过调用getUnchecked(K)来获取缓存值;但是一旦当CacheLoader中声明了检查型异常,则不可以调用getUnchecked。
Java代码
LoadingCache<Key,Graph> graphs =CacheBuilder.newBuilder()
.expireAfterAccess(10,TimeUnit.MINUTES)
.build(
newCacheLoader<Key,Graph>(){
publicGraph load(Key key){// no checked exception
return createExpensiveGraph(key);
}
});

...
return graphs.getUnchecked(key);
批量查询可以使用getAll(Iterable<? extends K>)方法。缺省,getAll方法将循环每一个键调用CacheLoader.load方法获取缓存值。当缓存对象的批量获取比单独获取更有效时,可以通过复写CacheLoader.loadAll方法实现缓存对象的加载。此时当调用getAll(Iterable)方法时性能也会提升。
需要注意的是CacheLoader.loadAll的实现可以为没有明确要求的键加载缓存值。比如,当为某组中的一些键进行计算时,loadAll方法则可能会同时加载组中其余键的值。
From a Callable
所有Guava缓存,不论是否会自动加载,都支持get(K, Callable(V))方法。当给定键的缓存值已存在时则直接返回,否则通过指定的Callable方法进行计算并将值存放到缓存中。直到加载完成时,相应的缓存才会被更改。该方法简单实现了"if cached, return; otherwise create, cache and return"语义。
Java代码
Cache<Key,Value> cache =CacheBuilder.newBuilder()
.maximumSize(1000)
.build();// look Ma, no CacheLoader
...
try{
// If the key wasn't in the "easy to compute" group, we need to
// do things the hard way.
cache.get(key,newCallable<Value>(){
@Override
publicValue call()throwsAnyException{
return doThingsTheHardWay(key);
}
});
}catch(ExecutionException e){
thrownewOtherException(e.getCause());
}

直接插入
使用cache.put(key, value)方法可以将值直接插入到缓存中,但这将会覆盖缓存中已存在的值。通过使用Cache.asMap()所导出的ConcurrentMap对象中的方法也可以对缓存进行修改。但是,请注意asMap中的任何方法都不能自动的将数据加载到缓存中。也就是说,asMap中的各方法是在缓存自动加载范围之外来运作。所以,当你使用CacheLoader或Callable来加载缓存时,应该优先使用Cache.get(K, Callable<V>),而不是Cache.asMap().putIfAbsent。
缓存回收
残酷的现实是我们可以肯定的说我们没有足够的内存来缓存一切。你必须来决定:什么时候缓存值不再值得保留?Guava提供了三种基本的缓存回收策略:基于容量回收策略,基于时间回收策略,基于引用回收策略。
基于容量回收策略
使用CacheBuilder.maximumSize(long)可以设置缓存的最大容量。缓存将会尝试回收最近没有使用,或者没有经常使用的缓存项。警告:缓存可能会在容量达到限制之前执行回收,通常是在缓存大小逼近限制大小时。
另外,如果不同的缓存项有不同的“权重”, 如,缓存项有不同的内存占用,此时你需要使用CacheBuilder.weigher(Weigher)指定一个权重计算函数,并使用CacheBuilder.maxmumWeight(long)设定总权重。和maximumSize同样需要注意的是缓存也是在逼近总权重的时候进行回收处理。此外,缓存项的权重是在创建时进行计算,此后不再改变。
Java代码
LoadingCache<Key,Graph> graphs =CacheBuilder.newBuilder()
.maximumWeight(100000)
.weigher(
newWeigher<Key,Graph>(){
publicint weigh(Key k,Graph g){
return g.vertices().size();
}
})
.build(
newCacheLoader<Key,Graph>(){
publicGraph load(Key key){// no checked exception
return createExpensiveGraph(key);
}
});

基于时间回收策略
CacheBuilder为基于时间的回收提供了两种方式:
expireAfterAccess(long, TimeUnit) 当缓存项在指定的时间段内没有被读或写就会被回收。这种回收策略类似于基于容量回收策略;
expireAfterWrite(long, TimeUnit) 当缓存项在指定的时间段内没有更新就会被回收。如果我们认为缓存数据在一段时间后数据不再可用,那么可以使用该种策略。
就如下面的讨论,定时过期回收会在写的过程中周期执行,偶尔也会读的过程中执行。
测试定时回收
测试定时回收其实不需要那么痛苦的,我们不必非得花费2秒来测试一个2秒的过期。在构建缓存时使用Ticker接口,并通过CacheBuilder.ticker(Ticker)方法指定时间源,这样我们就不用傻乎乎等系统时钟慢慢的走了。
基于引用回收策略
通过键或缓存值的弱引用(weak references),或者缓存值的软引用(soft references),Guava可以将缓存设置为允许垃圾回收。
CacheBuilder.weakKeys() 使用弱引用存储键。当没有(强或软)引用到该键时,相应的缓存项将可以被垃圾回收。由于垃圾回收是依赖==进行判断,因此这样会导致整个缓存也会使用==来比较键的相等性,而不是使用equals();
CacheBuilder.weakValues() 使用弱引用存储缓存值。当没有(强或软)引用到该缓存项时,将可以被垃圾回收。由于垃圾回收是依赖==进行判断,因此这样会导致整个缓存也会使用==来比较缓存值的相等性,而不是使用equals();
CacheBuilder.softValues() 使用软引用存储缓存值。当响应需要时,软引用才会被垃圾回收通过最少使用原则回收掉。由于使用软引用造成性能上的影响,我们强烈建议使用可被预言的maximum cache size的策略来代替。同样使用softValues()缓存值的比较也是使用==,而不是equals()。
显示移除
在任何时候,你都可以可以通过下面的方法显式将无效的缓存移除,而不是被动等待被回收:
使用Cache.invalidate(key)单个移除;
使用Cache.invalidteAll(keys)批量移除;
使用Cache.invalidateAll()移除全部。

⑨ 如何安全的更新java本地缓存

java安全的更新本地缓存的方式如下:当外部请求访问缓存数据时:如果缓存已经过期(当前时间-缓存的上次更新时间超过缓存的有效期),则重新调用webservice访问服务端查询数据,然后更新缓存。如果缓存未过期,但缓存为空,则重新调用webservice访问服务端查询数据,然后更新缓存。<pre t="code" l="java">/** 本地缓存 */
private List<InterfaceConfig> configs = null;
/** 本地缓存的上次更新时间 */
private long lastUpdateTime = 0;
public List<InterfaceConfig> queryInterfaceList() {
long currentTime = System.currentTimeMillis();
//判断本次缓存是否过期,过期则重新调用webservice查询数据,并更新缓存
if (currentTime - lastUpdateTime > 60000) {

InterfaceManageResult result = interfaceManageFacade.queryAllInterfaceList();
if (null != result result.isSuccess()) {
configs = result.getInterfaceConfigList();
}
lastUpdateTime = currentTime;
}
if (!CollectionUtils.isEmpty(configs)) {
return configs;
}

//本地缓存为空,则重新调用webservice查询数据,并更新缓存
InterfaceManageResult result = interfaceManageFacade.queryAllInterfaceList();
if (null == result || !result.isSuccess()) {
return null;
}
configs = result.getInterfaceConfigList();
return configs;
}