HarmonyOS鸿蒙Next原生API中,画面间迁移后,是否有类似Android的onActivityResult()功能

HarmonyOS鸿蒙Next原生API中,画面间迁移后,是否有类似Android的onActivityResult()功能

  1. 当前应用中定义了主画面MainPage.ets, 通过Tabs()-TabContent()加载首页、个人中心等自定义组件【@Component】的Tab页。
  2. 个人中心中,通常的用户头像Image(),通过aboutToAppear()调用接口,获取用户信息,加载并显示。
  3. 点击用户头像,进入头像、昵称编辑画面。
  4. 点击编辑画面中的头像,通过“相机”、“从相册中选取”等功能,进行图片裁剪编辑后,显示到编辑画面中,点击【保存】按钮,将编辑后的头像、新昵称调用文件上传服务器,并返回到个人中心Tab画面。

问题:这时返回到个人中心画面时,是否有类似Android原生的那种onActivityResult()方法,来处理前画面返回后的逻辑处理,从而进行个人中心Tab中,用户头像和昵称的更新显示。 调查及调试:通过下面的API,对aboutToAppear()、onPageShow()都尝试过。 aboutToAppear()只在画面初回显示时调用了,之后再也不会调用执行了。 onPageShow()不会执行,并且在MineView这个自定义组件名上的@Component的上面加上@Entry,也不会执行。

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-custom-component-lifecycle-V5#onpageshow

https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-router-V5#routerback


更多关于HarmonyOS鸿蒙Next原生API中,画面间迁移后,是否有类似Android的onActivityResult()功能的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

暂无对应的方法或者Api,

如果点击编辑头像拉起相机裁剪等功能,有离开当前的Ability,会触发Ability的onBackground,返回会触发Ability的onForeground,即Ability进入前后台,可以在这里通知相应的页面进行ui的刷新

可以试下通过AppStorage设置一个状态变量,在编辑资料和个人页面中通过@StorageLink监听此值,在编辑资料页面中点击保存时改变此状态变量的值,个人页面可以通过@Watch观察此状态变量的变化触发对应的方法,具体使用可以参考文档:

@StorageLink

@Watch

更多关于HarmonyOS鸿蒙Next原生API中,画面间迁移后,是否有类似Android的onActivityResult()功能的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next的原生API中,画面间迁移后,没有直接对应Android的onActivityResult()功能。鸿蒙系统采用了不同的设计理念,页面间的数据传递和回传主要通过AbilityPage的生命周期方法来实现。

具体来说,鸿蒙系统使用startAbilityForResult()方法启动另一个页面,并通过onResult()方法接收返回的数据。开发者需要在目标页面中调用setResult()方法设置返回的数据,然后在源页面的onResult()方法中处理这些数据。

例如:

  1. 在源页面中,使用startAbilityForResult()启动目标页面。
  2. 在目标页面中,使用setResult()设置返回的数据。
  3. 在源页面的onResult()方法中接收并处理返回的数据。

这种机制与Android的onActivityResult()类似,但具体的实现方式和API调用有所不同。

在HarmonyOS中,页面迁移后没有直接的onActivityResult()功能,但可以通过AbilitystartAbilityForResult()onAbilityResult()实现类似功能。开发者可以在这两个方法中处理页面迁移的结果,从而实现页面间数据传递和结果回调。

回到顶部