跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • Isolate 环境下 SharedPreferences 数据不能同步问题?
未分類
7 7 月 2020

Isolate 环境下 SharedPreferences 数据不能同步问题?

Isolate 环境下 SharedPreferences 数据不能同步问题?

資深大佬 : YokitCoder 5

cronStock() async {     _stockCode = _stockCodeController.value.text;     _growRate = _growRateController.value.text;     _reduceRate = _reduceRateController.value.text;      ……      saveData();     refreshStock(true);      await AndroidAlarmManager.periodic(const Duration(seconds: 30), periodicAlarmID, refreshStock, wakeup: true); }  saveData() async {     SharedPreferences prefs = await SharedPreferences.getInstance();     prefs.reload();     try {         print('0001 saveData: '+DateTime.now().toString());         prefs.setString('stock_prefix', stockPrefix);         prefs.setString('stock_code', _stockCodeController.value.text);         prefs.setDouble('grow_rate', double.parse(_growRateController.value.text));         prefs.setDouble('reduce_rate', double.parse(_reduceRateController.value.text));     } on FormatException catch(e) {      } catch (e) {         // No specified type, handles all     } }  ……  refreshStock([bool isManual = false]) {     print('0002 refreshStock afterTimer: '+DateTime.now().toString());      Future<List> stockShared = getShared();     stockShared.then((List shared) {          print('isManual: $isManual');         print('shareData: $shared');              }); }  Future<List> getShared() async {     print('getShared');     SharedPreferences prefs = await SharedPreferences.getInstance();     prefs.reload();     return [         prefs.getString('stock_prefix'),         prefs.getString('stock_name'),         prefs.getString('stock_code'),         prefs.getDouble('grow_rate'),         prefs.getDouble('reduce_rate'),          // 当前值         prefs.getString('stock_price'),         prefs.getDouble('stock_rate'),         prefs.getInt('rate_color'),     ]; } 

AndroidAlarmManager 插件用到了 Isolate 环境,在 Isolate 环境下 refreshStock 函数中的 getShared()拿到的 SharedPreferences 数和上面 saveData()存储的数据不同步,要多次间隔调用的后才会同步到。

大佬有話說 (0)

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具