Flutter共享首选项问题

时间:2019-05-14 16:01:59

标签: sharedpreferences

我有一个简单的Flutter函数,可以从共享的首选项获取计数器,对其进行递增,然后将其保存回共享的首选项。它在一个单独的文件中,因为我将添加更多代码并从几个屏幕中调用它。问题是重新启动应用程序时计数器值不会持久。我怀疑问题出在我的计数器变量的范围内,但我不知道该如何解决。

这是我的代码:

import 'package:shared_preferences/shared_preferences.dart';

var fileName = 'Counter';
int counter;

updateCounter() {

  getCounter(counter) async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    counter = (prefs.getInt('$fileName') ?? 0);
  }

  putCounter(counter) async {
    SharedPreferences preferences = await   SharedPreferences.getInstance();
    preferences.setInt('$fileName', counter);
    );
  }

  getCounter(counter);
  if (counter == null) {
    counter = 0;
  }
  counter++;
  putCounter(counter);

}

1 个答案:

答案 0 :(得分:0)

问题似乎出在这种方法上:

getCounter(counter) async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    counter = (prefs.getInt('$fileName') ?? 0);
  }

应如下所示:

int getCounter() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    counter = (prefs.getInt('$fileName') ?? 0);
    return counter;
  }