> 文档中心 > 【FAQ】HarmonyOS JavaUI中使用terminate()后重新打开AbilitySlice页面存在缓存

【FAQ】HarmonyOS JavaUI中使用terminate()后重新打开AbilitySlice页面存在缓存

 【前言】

同一个Ability下的两个不同的AbilitySlice,官方给的Java UI中是通过present跳转AbilitySlice,使用AbilitySlice.terminate方法关闭Slice,具体可以参考官方给的示例代码(Samples: We provide a series of app samples to help you quickly get familiar with the APIs and app development process of the HarmonyOS SDKs. | 为帮助开发者快速熟悉HarmonyOS SDK所提供的API和应用开发流程,我们提供了一系列的应用示例 - Gitee.com)

【问题描述】

我们遇到的问题是:两个Slice, A 和 B,B中有一个输入框。从A present 跳转到B以后,修改B中的输入框,然后返回A,重新打开B。这个时候B中的输入框并不是初始化的状态,而是上一次被修改的UI。

cke_455.png

【解决方案】

使用使用LayoutScatter动态解析XML文件, 修改onStart中的代码:

  @Override    protected void onStart(Intent intent) { super.onStart(intent);// super.setUIContent(ohos.samples.pageability.ResourceTable.Layout_first_ability_second_slice);//不直接使用layoutRes xml super.setUIContent((ComponentContainer) LayoutScatter.getInstance(getContext()).parse(ResourceTable.Layout_first_ability_second_slice, null, false));//使用LayoutScatter加载xml HiLog.error(new HiLogLabel(HiLog.LOG_APP, 0, "MY_TAG"), "%{public}s", data+""); initComponents(); setResult();    }

欲了解更多更全技术文章,欢迎访问https://developer.huawei.com/consumer/cn/forum/?ha_source=zzh