HarmonyOS 鸿蒙Next 通过单例进行页面保存

HarmonyOS 鸿蒙Next 通过单例进行页面保存

从列表页面跳转到详情页面(共用页面) 进行播放操作

例如 点击A 进入详情页 :  播放状态下,对当前的详情页A进行保存, 页面返回时 依旧播放,并保持进度的更新。下次进入还是保持播放状态和进度  ;  如果是暂停状态下, 不进行当前页面的保存

       点击B 进入详情页 :  点击播放 清空保存的详情页A  保存详情页B

这样的效果 有没有Demo可以参考

WX20250102-103759.png


更多关于HarmonyOS 鸿蒙Next 通过单例进行页面保存的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复
你这个需求需要使用的知识是后台任务backgroundTask而不是状态存储吧?

更多关于HarmonyOS 鸿蒙Next 通过单例进行页面保存的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


按照之前ios的思路 就是把当前的页面存放到了单例中,进页面的时候判断跟单例中的页面是否一样 如果一样就直接取单例中的页面 否则就重新创建新的页面

在HarmonyOS鸿蒙Next系统中,通过单例模式进行页面保存是一种常见的状态管理方式。单例模式确保一个类只有一个实例,并提供一个全局访问点。以下是如何在鸿蒙系统中实现页面保存的单例模式:

  1. 定义单例类: 创建一个包含页面状态的类,并在其中实现单例模式。使用静态变量存储实例,并提供一个静态方法来获取该实例。

  2. 页面状态管理: 在单例类中定义用于存储页面状态的数据结构,如变量或集合。确保这些状态可以被正确设置和获取。

  3. 页面保存与恢复: 在页面销毁前,将当前页面的状态保存到单例实例中。在页面重新创建时,从单例实例中恢复状态。

  4. 线程安全: 如果应用涉及多线程操作,确保单例类的实例获取方法是线程安全的,以避免竞态条件。

  5. 使用示例: 在页面的onPageStart()方法中恢复状态,在onPageEnd()方法中保存状态。

示例代码(简化):

// 注意:此处为示例说明,实际代码应使用鸿蒙特定的API和语法
public class PageStateSingleton {
    private static PageStateSingleton instance;
    private PageState state;

    private PageStateSingleton() {}

    public static synchronized PageStateSingleton getInstance() {
        if (instance == null) {
            instance = new PageStateSingleton();
        }
        return instance;
    }

    public PageState getState() { return state; }
    public void setState(PageState state) { this.state = state; }
}

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部