我有一个简单的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);
}
答案 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;
}