从分享面板跳进应用后进程被重建:HarmonyOS 7 ShareExtension 冷启动如何避免重复导入
从分享面板跳进应用后进程被重建HarmonyOS 7 ShareExtension 冷启动如何避免重复导入先看问题是怎么发生的用户从系统分享面板进入目标应用图片刚解析一半进程因为资源回收被重建。页面恢复后又读一次 SharedData最终同一张图导入两份。仅靠页面内 isImported 标志无效因为页面和进程重建后它都会丢失。验证边界本文依据文末华为开发者官方资料整理并用可执行 TypeScript 状态模型验证应用侧分支。当前本机为 API 24 且未连接 HarmonyOS 7 真机文中的 API 26 代码属于接入骨架不声称已完成 API 26 编译、真机性能测试或设备兼容认证。上线前仍需在目标 SDK 和真实设备上补齐接口、异常码、权限与性能证据。根因和工程边界接收分享要把“读取系统输入”和“提交业务数据”分成两阶段。第一阶段生成稳定 requestId 与项目账本允许恢复第二阶段以 requestId 作为幂等键写业务库。页面只展示账本状态不直接决定是否已提交。这样即使扩展被重建也能继续未完成项而不是重放全部动作。案例一三张图片导入时进程重建恢复后读取本地账本已校验的两张不重复解码只继续第三张。用户确认时以 requestId 提交一次数据库唯一键阻止重复批次。案例二用户返回面板再次选择同一内容新的系统动作生成新会话但文件指纹命中已导入记录。页面明确提示“已存在”允许跳过或保留副本而不是静默写入。可以独立运行的状态模型class CommitLog{private donenew Setstring();commit(id:string,write:()void){if(this.done.has(id))return false;write();this.done.add(id);return true}} const lognew CommitLog();let writes0;log.commit(r-7,()writes);log.commit(r-7,()writes); if(writes!1)throw new Error(分享批次重复提交);这个小模型只验证应用侧判断不替代 HarmonyOS 7 真机和目标 SDK。接入平台接口时应把调用放在模型确定的边界内并把真实错误码、日志和用户可见结果补进验收记录。为什么选择这条方案幂等键应落在业务提交边界而不是只放在按钮防抖里。按钮防抖挡不住进程重建、网络重试和同一回调重复到达。账本只保留恢复所需的最小元数据并在成功或过期后清理避免把临时资源长期当成正式数据。上线前验证清单验证项通过标准进程重建已完成项不重复有可重复步骤、日志或可见结果提交回调重复只写一次有可重复步骤、日志或可见结果账本损坏进入可解释失败页有可重复步骤、日志或可见结果会话过期临时文件被清理有可重复步骤、日志或可见结果相同文件新会话用户决定跳过或保留有可重复步骤、日志或可见结果官方资料与证据边界1. 系统分享详情页处理共享内容2. ShareExtensionAbility API 参考可复用结论先把输入、所有者、生命周期和失败回退写成状态再接入平台能力。这样出现异常时可以回答“哪一步失败、谁负责释放、用户还能做什么”而不是靠重复调用掩盖问题。

相关新闻

裁决台账双向互校(下):台账哈希链、三向对账与最小落地

裁决台账双向互校(下):台账哈希链、三向对账与最小落地

裁决台账双向互校(下):台账哈希链、三向对账与最小落地 系列:《宪法即代码》第 31 篇(下)| 标签建议:AI编程、Rust、架构治理、CI、可追溯性 文章目录裁决台账双向互校(下…

2026/10/7 10:06:48 阅读更多 →
华为OD机试真题 新系统 2026-09-20 JavaGoC【递增差排列】

华为OD机试真题 新系统 2026-09-20 JavaGoC【递增差排列】

目录 题目 思路 Code 题目 题目内容: 给定两个正整数 n 和 k(其中 1≤k≤n≤8),从 [1,n] 中选取 k 个元素,排成长度为 k 的有序数组,按如下条件筛选排列组合后返回: - 数组中的元素取自整数 [1,n],且互不相同。 - 对于数组中任意连续三个元素 a[i],a[i+1],a[i+…

2026/10/7 10:06:48 阅读更多 →
Redis明明只是单线程,为什么这么快?

Redis明明只是单线程,为什么这么快?

在后端面试中,有一个经典的“灵魂拷问”:“Redis 是单线程的,为什么还能这么快?” 很多人第一反应是“因为它是内存数据库”。但这只说对了一半。如果仅仅因为内存快,那多线程的内存数据库岂不是要起飞?为什…

2026/10/7 10:06:48 阅读更多 →

最新新闻

DeepSeek桌面版真相:本地推理选型与稳定部署指南

DeepSeek桌面版真相:本地推理选型与稳定部署指南

1. DeepSeek 桌面版不是“另一个ChatGPT客户端”,而是本地推理能力的重新定义最近朋友圈和几个技术群都在刷屏“DeepSeek 桌面版来了”,点开链接却发现——不是官网发布的安装包,不是官方GitHub仓库的Release,而是一批第三方打包工…

2026/10/7 10:44:28 阅读更多 →
钛合金薄壁件CNC加工的刀具参数与工装方案

钛合金薄壁件CNC加工的刀具参数与工装方案

钛合金薄壁件CNC加工的刀具参数与工装方案一、钛合金薄壁件的加工难点在CNC精密加工中,钛合金薄壁件属于典型难加工对象。据机械研究与应用期刊文章,钛合金具有弹性模量小、导热系数低、加工硬化严重的特点,加工中切屑容易在前刀面发生强烈滑…

2026/10/7 10:44:28 阅读更多 →
谷歌把自家网站交给 AI 安全代理“拆台”,结果拆出 500 多个已验证 XSS 漏洞

谷歌把自家网站交给 AI 安全代理“拆台”,结果拆出 500 多个已验证 XSS 漏洞

真正可怕的不是漏洞数量,而是验证方式:这个叫 PageBreak 的内部代理,不是把 AI 的猜测直接丢给工程师,而是先把每个疑似跨站脚本攻击放进接近真实的环境里跑一遍,能证明恶意代码确实在浏览器里执行,才升级为…

2026/10/7 10:44:28 阅读更多 →
训练测试规范:数据隔离与配置化,让模型实验可复现可对比

训练测试规范:数据隔离与配置化,让模型实验可复现可对比

今天是“AI修行日记”开更的第43天。图省事儿,我把训练和测试脚本糊在了同一个文件里,改参数靠全局变量,验证集用完顺手又训两轮。结果很酸爽:训练 Loss 曲线一路向下,一换真实场景就崩,回头排查还根本搞不…

2026/10/7 10:44:28 阅读更多 →
DeepLog日志异常检测:从序列建模到生产落地的完整实践

DeepLog日志异常检测:从序列建模到生产落地的完整实践

简介:本资源是一套基于LSTM神经网络的日志异常检测完整实现方案,面向AI运维、系统监控及日志分析方向的中高级开发者与研究者,聚焦解决IT系统运行中关键故障的早期识别问题。项目以Deeplog框架为基底,深度融合LSTM对日志序列建模能…

2026/10/7 10:44:28 阅读更多 →
反激电源DCM与CCM模式选择实战指南

反激电源DCM与CCM模式选择实战指南

1. 为什么“DCM还是CCM”不是选择题,而是设计起点 刚入行做反激电源时,我被前辈一句“先定工作模式”卡在原地整整三天。手头有个12V/2A输出的适配器项目,输入85–264Vac,客户只要求效率>85%、纹波<100mV、…

2026/10/7 10:43:27 阅读更多 →

日新闻

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:01:58 阅读更多 →
用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:02:00 阅读更多 →
芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:02:00 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 7:15:40 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 5:29:09 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 9:29:10 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 8:21:32 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 4:21:51 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 1:18:13 阅读更多 →