展开

关键词

Android保存文件显示到文件管理最近文件下载列表方法

这篇记录是Android如何把我们往存储写入文件,如何显示到文件管理下载列表、最近文件列表。 假设保存文件为外部存储File file,也许是app私有目录(未测试)、也许是外部存储根目录download、pictures等目录(没发现问题)。 第一步,暴力扔给媒体扫描,管你是不是图片 如果我们文件是图片、视频、音乐等媒体文件,显示到相册等地方 context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE , Uri.fromFile(file))); 第二步,添加到下载列表,自动会显示到最近文件 String mime=MimeTypeMap.getSingleton().getMimeTypeFromExtension :DownloadManager.addCompletedDownload,调用后会把文件添加到下载列表,并出现在最近文件列表(图片是会,其他类型测试可能会)。

84720

微信朋友圈千亿访问量背后技术挑战和实践总结

每个IDC都有一整套接口机/逻辑设备/存储设备用以支撑用户上传下载、及文件落地存储需求。 OC点主要作用是提供外网访问,承载用户下载流量。 front层单机剔除为例: ? 如果整个OC或IDC点碰到故障,由于变动较大,一般依赖运维人员手工切换来恢复,或者通过模块之间重试机制来保障。 朋友圈下载重试: ? 实现原理是每一层master都会返回给前端至少两组ip列表,并保证两组ip列表为异地节点,前端失败时才可以实现异地重试。 由于上传preupload接口机及后层逻辑模块等,都无法支持10倍涨幅。所以在架构另外搭建了两套TSSD缓冲池,缓冲池用于临时存储新上传文件,可以支持读写。 用户下载时,会根据文件标识进行判断,如果发现文件存储在缓冲池二而不是TFS,则会到缓冲池二去获取文件。所以缓冲池二可以替代TFS功能,起到保护底层模块效果。

83640
  • 广告
    关闭

    腾讯移动推送,新购限时特惠!4.5折起!

    安全/快速/稳定的APP消息推送服务,用户促活/留存利器,稳定服务于腾讯游戏、腾讯视频等高日活应,欲购从速!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    微信朋友圈:应对春节千亿访问量背后故事

    每个IDC都有一整套接口机/逻辑设备/存储设备用以支撑用户上传下载、及文件落地存储需求。 OC点主要作用是提供外网访问,承载用户下载流量。 每个OC内设备,一起组成一个缓存池,用户下载时,本地OC缓存不命中,才到IDC去回源拉取文件。 容灾及重试机制: 朋友圈模块容灾主要是实现单机故障时自动剔除,主要形式是通过master管理服务器ip列表,通过心跳探测等方式找到异常设备,并屏蔽故障ip,不返回给前端使用,front层单机剔除为例 实现原理是每一层master都会返回给前端至少两组ip列表,并保证两组ip列表为异地节点,前端失败时才可以实现异地重试。 用户下载时,会根据文件标识进行判断,如果发现文件存储在缓冲池二而不是TFS,则会到缓冲池二去获取文件。所以缓冲池二可以替代TFS功能,起到保护底层模块效果。

    1.6K30

    系统设计:即时消息服务

    2 TB/86400秒~=25 MB/s 由于每个传入消息都需要发送给另一个用户,因此上传和下载都需要相同25MB/s带宽。 如果是临时断开连接,例如,接收器长轮询请求刚刚超时,那么我们应该期待用户重新连接。在这种情况下,我们可以要求发件人重试发送邮件。此重试可以嵌入到客户端逻辑,这样用户就不必重新键入消息。 HBase是一个面向列键值NoSQL数据库,可以针对一个键将多个值存储到多个列。HBaseGoogleBigTable为模型,运行在Hadoop分布式文件系统(HDFS)之上。 所有活动用户都将保持与服务器连接打开接收消息。每当新消息到达时,聊天服务器就会在长轮询请求中将其推送到接收用户。消息可以存储在HBase,它支持快速小更新,并且范围广泛 基于搜索。 推送通知将使我们系统能够向脱机用户发送消息。 对于推送通知,每当出现新消息或事件时,每个用户都可以从其设备(或web浏览器)选择加入获取通知。

    2.5K652

    从游击队到正规军(二):马蜂窝旅游网IM客户端架构演进和实践总结

    3.3、会话消息列表绘制 基于不同场景,如社交为主私信、用户服务为主咨询反馈等,都需要会话列表展示形式;但各场景又不完全相同,需要分析当前会话列表共通性及可封装复用部分,更好地支撑后续业务扩展 而如通用消息如头像、名称、消息时间、是否可举报、已读未读状态、发送失败/重试状态等都可以统一处理,降低修改维护成本,同时使各消息 UI 处理逻辑更少、更清晰,更利于新类型扩展管理。 4.1、消息去重 在前面的架构,我们使用 msg_id 来标记消息列表每一条消息,msg_id 是根据客户端上传数据,进行存储后生成。 ? 但从会话页或者列表页退出之后,就无法单纯地从界面上获取这些信息,这时需要有其他机制,让用户获知当前消息状态。 系统推送与第三方推送是一个可行选择,但本质上推送也是基于长链接提供服务。 在重试机制 1.0 版本,对于可能出现较多重试请求情况,采取是添加 60s 内连续 5 次报错延迟重试限制。 具体流程如下: ?

    31620

    分布式任务调度平台XXL-JOB

    1、"调度中心OnLine:"右侧显示在线"调度中心"列表, 任务执行结束后, 将会failover模式进行回调调度中心通知执行结果, 避免回调单点风险; 2、"执行器列表" 显示在线执行器列表 AppName: 每个执行器机器集群唯一标示, 任务注册 "执行器" 为最小粒度进行注册; 每个任务通过其绑定执行器可感知对应执行器机器列表; 注册表: 见"XXL_JOB_QRTZ_TRIGGER_REGISTRY Shell模式任务为例,获取分片参数代码如下 echo "分片序号 index = $2" echo "分片总数 total = $3" 分片参数属性说明: index:当前分片序号(从0开始),执行器集群列表当前执行器序号 09-29] 1、推送新版本 V1.4.2 至中央仓库, 大版本 V1.4 进入维护阶段; 2、任务新增时,任务列表偏移问题修复; 3、修复一处因bootstrap不支持模态框重叠而导致样式错乱问题 、jackson等等; 6.22 版本 V1.9.2 特性[迭代] 1、[迭代]支持通过API服务操作任务信息; 2、[迭代]任务告警逻辑调整:任务调度,以及任务回调失败时,均推送监控队列。

    2.2K30

    2018-06-13 对账系统设计咱们聊聊对账系统该如何设计

    文件获取模块:下载或者读取各渠道对账文件 文件解析模块:创建不同解析模板,根据渠道和文件类型获取对应解析模板进行解析 对账处理模块:对账业务逻辑处理 差错处理模块:处理差错池中订单 一般会设计一个定时任务 (image-8811f3-1528850749952)] 1、下载对账单 大多数银行都要求接入方提供ftp服务,银行定时将对账单推送到接入方提供ftp服务器上面;还有一部分银行会提供对账单下载服务 技术实现上可以做成工厂模式,不同支付渠道有不同下载类,如果是http接口将文件写入到对账单,如果是ftp服务器,将服务器对账单下载到本地带解析目录。 开始银行通道数据为准对账 平台订单为基准对账逻辑平台所有交易成功订单为基准,遍历银行订单所有数据,找出订单号相同订单,对比订单金额、手续费是否一致。 银行订单为基准对账逻辑银行交易数据为基准,遍历所有平台交易(包括未成功订单),找出订单号相同但支付状态不一致订单,在进行对比金额存入差错池。

    4.1K60

    转载《分布式任务调度平台XXL-JOB》

    1、"调度中心OnLine:"右侧显示在线"调度中心"列表, 任务执行结束后, 将会failover模式进行回调调度中心通知执行结果, 避免回调单点风险; 2、"执行器列表" 显示在线执行器列表 AppName: 每个执行器机器集群唯一标示, 任务注册 "执行器" 为最小粒度进行注册; 每个任务通过其绑定执行器可感知对应执行器机器列表; 注册表: 见"XXL_JOB_QRTZ_TRIGGER_REGISTRY Shell模式任务为例,获取分片参数代码如下 echo "分片序号 index = $2" echo "分片总数 total = $3" 分片参数属性说明: index:当前分片序号(从0开始),执行器集群列表当前执行器序号 09-29] 1、推送新版本 V1.4.2 至中央仓库, 大版本 V1.4 进入维护阶段; 2、任务新增时,任务列表偏移问题修复; 3、修复一处因bootstrap不支持模态框重叠而导致样式错乱问题 10、任务告警逻辑调整:任务调度,以及任务回调失败时,均推送监控队列。

    1K20

    Adobe系列安装问题汇总,遇到这些问题该怎么办

    系统因素:各个电脑系统文件与设置都不尽相同,这方面的问题不可统一解决。 错误代码 101、102 说明:无法安装产品 官方解决方案:单击“重试再次下载并安装它。 建议:如果大家出现这个情况使用不是本站安装包,请重新下载安装包并进行安装。 107 说明:下载内容已损坏 官方解决方案:单击“重试再次下载并安装它。 116 说明:处理文件系统文件时出错 官方解决方案:重新启动系统,然后重新尝试安装。 建议:如果出现这种情况不是本站推送安装包,请重新下载安装包进行安装。 126 说明:下载内容已损坏 官方解决方案:单击“重试再次下载并安装它。 建议:选择一个干净不缺失文件安装包很重要。 建议:参照126 145 说明:文件存在于安装路径 官方解决方案:请重命名/删除文件,然后重试。要获取有关此文件信息,请参阅更多信息。

    16120

    微服务中集成分布式配置中心 Apollo

    namespace (命名空间):一个应用下不同配置分组,可以简单地把namespace类比为文件,不同类型配置存放在不同文件,如数据库配置文件,RPC配置文件,应用自身配置文件等;应用可以直接读取到公共组件配置 ),而后直接通过IP+Port 访问服务,同时在 Client 侧会做 load balance、错误重试 Portal 通过域名访问 Meta Server 获取Admin Service服务列表(IP 三个逻辑角色部署在同一个JVM进程 ConfigService、AdminService、Portal 属于 Apollo 服务端模块,其中提到 Eureka 是为了保证高可用,Config 和 获取到服务实例地址列表之后,再以简单客户端软负载(Client SLB)策略路由定位到目标实例,并发起调用。 客户端实现 在配置中心中,一个重要功能就是配置发布后实时推送到客户端。 客户端从Apollo配置中心服务端获取到应用最新配置后,会保存在内存 客户端会把从服务端获取到配置在本地文件系统缓存一份,在遇到服务不可用,或网络不通时候,依然能从本地恢复配置。

    70730

    玩转 电子阅读器 Kindle

    固件下载: 一般 Kindle 在连接 WiFi 状态下,收到亚马逊升级推送后会自动> 升级到最新版本固件,无需手动干预,但时间不确定,少则两三天,多则几个月。 将新更新文件从电脑拖入Kindle驱动器“根目录”下(和 documents 文件夹同级) (重要: 不要将更新文件拖入Kindle驱动器任何文件。) ,从其接受文档 您只能通过已添加至【管理我内容和设备】【已认可发件人电子邮箱列表电子邮箱来接收文档。 如果您电子邮箱不在列表,请选择【添加认可电子邮箱】。 输入所需电子邮箱,然后点击【添加地址】。 提示: 要删除某个认可电子邮箱,请选择您要删除电子邮箱旁边【删除】,然后点击【确定】确认删除。 重要:建议您在发送文件之前将文件名改成英文(包括ZIP压缩文件文件文件名)。

    10610

    干货 | 携程无线离线包增量更新方案实践

    5、App根据离线包列表下载离线包 获取到离线包列表之后,在后台线程按顺序逐个下载。 6、离线包安装 下载完成,解压,合并,安装; 其中2个系统功能简单介绍下。 为了减少网络因素导致失败,需要增加重试策略,比如最多下载3次,第一次失败,隔15s重试一次,第二次2次失败,隔30s再试一次,3次失败则会终止继续下载。 2、签名校验 文件下载完成之后,需要检查文件是否被篡改过,因为离线包里面都是代码,必须保证代码正确性,建议在下发离线包列表时候,下发该文件签名,下载完成之后,校验签名是否正确。 3、定时轮循 最初我们离线包列表是在App启动之后,会获取一次,然后下载,当时经常会有反馈离线包下载不及时,不重启就下载不到最新版本。为了解决这个问题,也考虑过使用服务器推送方案,但是成本较高。 业务A为例,简单说明离线包下载安装过程: 1、业务A离线包下载成功之后开启子线程合并下发离线包Anew.7z和App包原始包Abase.7z,合并成功之后保存在离线包工作目录,例如A工作目录为

    1.7K30

    微服务中集成分布式配置中心 Apollo

    namespace (命名空间):一个应用下不同配置分组,可以简单地把namespace类比为文件,不同类型配置存放在不同文件,如数据库配置文件,RPC配置文件,应用自身配置文件等;应用可以直接读取到公共组件配置 ),而后直接通过IP+Port 访问服务,同时在 Client 侧会做 load balance、错误重试 Portal 通过域名访问 Meta Server 获取Admin Service服务列表(IP 三个逻辑角色部署在同一个JVM进程 ConfigService、AdminService、Portal 属于 Apollo 服务端模块,其中提到 Eureka 是为了保证高可用,Config 和 获取到服务实例地址列表之后,再以简单客户端软负载(Client SLB)策略路由定位到目标实例,并发起调用。 客户端实现 在配置中心中,一个重要功能就是配置发布后实时推送到客户端。 客户端从Apollo配置中心服务端获取到应用最新配置后,会保存在内存 客户端会把从服务端获取到配置在本地文件系统缓存一份,在遇到服务不可用,或网络不通时候,依然能从本地恢复配置。

    43420

    Laravel 消息队列优先级和失败任务重试实现

    ($order))->onQueue('payment'); 此外,你还可以在任务类通过 queue 属性指定该任务被推送队列: <? return (static::$popCallbacks[$this->name])($popJobCallback, $queue); } // 依次读取队列列表每个队列任务进行处理 失败任务重试 基于 Webhook 推送消息到其他应用 以上演示都是同一个应用内部消息数据推送,此外,我们还可以借助 Webhook 实现不同应用之间消息推送。 作为第一方应用,我们也可以对外提供这种 Webhook URL,告知第三方应用服务接口响应结果,我们把响应数据看作消息的话,这个时候,我们第一方应用是消息数据生产者,调用我们服务等待响应结果第三方应用是处理消息数据消费者 最后,如果所有尝试次数用尽还未执行成功,则将该任务标记为执行失败,我们可以在任务类定义一个 failed 方法编写任务执行失败后业务逻辑: // 任务执行失败后发送邮件通知给相关人员 public

    81520

    碎片式技术笔记

    水平扩展:应用层、容量规划 垂直扩展:按业务域做垂直拆分(避免业务扩展带来逻辑复杂度提升) 按照业务类型或者功能做划分 应用:展示层,webview等,只做数据展示和渲染; 服务:按照业务类型和逻辑划分处理 常见配置中心组建:Apollo、Nacos config推送:主动推送最新配置数据到client(低时延,适合数据量较小情况) config拉取:client定时拉取最新配置数据(复杂,管理client 成功/失败(重试机制) 增长消费状态标识(ACK,失败放单独队列,重试) 容错处理 失败/异常重试; 消息持久化存储; 分布式数据分层 解决了什么问题? ,更新可用服务地址列表 负载均衡:随机分配&权重选取 服务发现:服务与提供服务机器解耦 服务注册:传递类名、方法名、参数类型、版本号 统一SDK:封装统一client/server标准接口规范(协议 (http/TCP)&失败重试机制&参数传递规范)

    10730

    Apollo配置中心管理后台详解

    Apollo(阿波罗)是携程框架部门研发开源配置管理中心,能够集中化管理应用不同环境、不同集群配置,配置修改后能够实时推送到应用端,并且具备规范权限、流程治理等特性。 来源:网络 各模块职责 Config Service提供配置读取、推送等功能,服务对象是Apollo客户端 Admin Service提供配置修改、发布等功能,服务对象是Apollo Portal 服务列表(IP+Port),而后直接通过IP+Port访问服务,同时在Client侧会做load balance、错误重试 Portal通过域名访问Meta Server获取Admin Service服务列表 三个逻辑角色部署在同一个JVM进程 分步执行流程 Apollo启动后,Config Service和Admin Service会自动注册到Eureka服务注册中心,并定期发送保活心跳。 关键字:cluster namespace (命名空间): 一个应用下不同配置分组,可以简单地把namespace类比为文件,不同类型配置存放在不同文件,如数据库配置文件,RPC配置文件,应用自身配置文件

    1.3K20

    工作巧用了这几个设计模式重构代码,女同事直呼666

    } else if(B设备){ IotPushStrategy.push(deviceVO,content); } } } 总结 将每种通道推送逻辑封装到了具体策略 使用场景 不同场景处理流程,部分逻辑是通用,可以放到父类作为通用实现,部分逻辑是个性化,需要子类去个性实现。 实践经验 还是接着之前语音播报例子来说,后期我们新加了两个需求: 消息推送需要增加 trace 有些通道推送失败需要重试 所以现在流程变成了这样: trace 开始 通道开始推送 是否允许重试,如果允许执行重试逻辑 trace 结束 其中 1 和 4 是通用,2 和 3 是个性化,鉴于此我在具体推送策略之前增加了一层父类策略,将通用逻辑放到了父类,修改后代码如下: abstract class AbstractPushStrategy CallResult callResult = doPush(deviceVO, content); //3.是否允许重试逻辑由子类实现,如果允许执行重试逻辑

    28230

    Nacos2# 服务注册与发现客户端示例与源码解析(二)

    Nacos从2.0以后增加了对grpc支持,代码HTTP代理初始化还有保留,我们注册发现通常为临时节点,这部分已由gRPC接管。可以对比下新旧逻辑实现差异。 gRPC 客户端代理初始化主要逻辑为创建gRPC Client并启动 并注册ServerRequestHandler用于处理Nacos Server推送NotifySubscriberRequest :@1如果推送为服务信息通过processServiceInfo处理,逻辑见上篇;@2 如果dump类型,则客户端发送服务信息serviceInfoMapack信息到服务端。 boolean serverExist = false; // 判断连接上下文reconnectContext.serverInfo是否在我们推荐设置列表 reconnectContext.serverInfo.serverPort = serverInfo.serverPort; break; } } // 不再推荐列表则移除

    89630

    相关产品

    • 移动金融开发平台

      移动金融开发平台

      腾讯移动金融开发平台(TMF)为银行、互联网金融、保险、证券客户提供一站式、覆盖全生命周期的移动金融服务。核心服务包括APP客户端开发组件、应用加固、环境安全检测等APP开发运营关键服务,帮助金融机构低成本、高效率地打造移动金融服务…...

    相关资讯

    热门标签

    活动推荐

    扫码关注腾讯云开发者

    领取腾讯云代金券