我希望我的启动画面始终出现在我的应用程序中,这确实很棒,但是我在启动画面之后进行了一次遍历,并且希望它是一次遍历,所以我想向共享库添加一个整数首选项的值为0,每次我打开初始屏幕时,该值都会增加1,因此,当第二次运行“数字”等于1或更大时,初始屏幕将跳过演练并返回到主页,这是我的代码现在要编辑:
void initState() {
// TODO: implement initState
super.initState();
Timer(Duration(seconds: 5), () => MyNavigator.goToIntro(context));
}
我希望它像:
void initState() {
// TODO: implement initState
super.initState();int number=0;//this is in the shared prefs
Timer(Duration(seconds: 5), () => if(number==0){MyNavigator.goToIntro(context));
}else{MyNavigator.goToHome(context));
number++;}
}
最佳答案
下面的代码可以按照我们的预期完美打印(仅在首次启动期间,“首次启动”期间)。您可以使用导航逻辑来代替打印。
@override
void initState() {
super.initState();
setValue();
}
void setValue() async {
final prefs = await SharedPreferences.getInstance();
int launchCount = prefs.getInt('counter') ?? 0;
prefs.setInt('counter', launchCount + 1);
if (launchCount == 0) {
print("first launch"); //setState to refresh or move to some other page
} else {
print("Not first launch");
}
}