多个pageAbility之间如何共享变量

多个pageAbility之间如何共享变量

HarmonyOS
2024-01-30 21:00:24
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
golcm
  • 方式一:可以通过用户首选项实现数据持久化。
import dataPreferences from '@ohos.data.preferences'; 
import { BusinessError } from '@ohos.base'; 
 
let preferences: dataPreferences.Preferences | null = null; 
try { 
  preferences.put('startup', 'auto', (err: BusinessError) => { 
    if (err) { 
      console.error(`Failed to put data. Code:${err.code}, message:${err.message}`); 
      return; 
    } 
    console.info('Succeeded in putting data.'); 
  }) 
} catch (err) { 
  console.error(`Failed to put data. Code: ${err.code},message:${err.message}`); 
} 
try { 
  preferences.flush((err) => { 
    if (err) { 
      console.error(`Failed to flush. Code:${err.code}, message:${err.message}`); 
      return; 
    } 
    console.info('Succeeded in flushing.'); 
  }) 
} catch (err) { 
  console.error(`Failed to flush. Code:${err.code}, message:${err.message}`); 
}
  • 方式二:可以通过@StorageLink搭配PersistentStorage接口可以实现数据本地持久化。
import router from '@ohos.router'; 
 
PersistentStorage.persistProp("time", "Hello, OpenHarmony") 
 
@Entry 
@Component 
struct ComponentTest { 
  // 初始化time1,如果AppStorage 
  @StorageLink('time') time1: string = "1648643734154"; 
  @StorageLink('time') time2: string = "OpenHarmony"; 
  build() { 
    Column({ space: 10 }) { 
      Text(`父组件【${this.time1}】`) 
        .fontSize(20) 
        .backgroundColor(Color.Pink) 
      Button('更新时间') 
        .onClick(() => { 
          this.time2 = new Date().getTime().toString(); 
        }) 
      Button('跨页面数据绑定') 
        .onClick(() => { 
          router.pushUrl({ url: "pages/test/setting" }) 
        }) 
    } 
    .width('100%') 
    .height('100%') 
    .padding(10) 
  } 
}


分享
微博
QQ
微信
回复
2024-02-01 00:50:14
相关问题
PageAbility配合多个Slice实现页面间切换
13930浏览 • 4回复 已解决
HAP和HSP之间如何实现数据共享
1895浏览 • 1回复 待解决
HarmonyOS 多个HSP之间如何互相通讯
440浏览 • 1回复 待解决
怎么理解pageAbility
3046浏览 • 1回复 待解决
Worker线程内存如何共享
2315浏览 • 1回复 待解决
Actor线程内存如何共享
431浏览 • 1回复 待解决