我正在构建一个带有 4 个小游戏的小 Flutter 应用程序。
每次我启动,然后退出并重新启动游戏时,它都会比以前慢(FPS 更少,甚至无法玩......)。让它再次顺利的唯一方法是重新启动整个应用程序。
当我正在启动另一个游戏时,我如何确定该游戏不再运行?我认为这是因为我的一个游戏没有被正确杀死,我失去了 FPS。
这是我在 SelectGame.dart 上启动游戏时的代码逻辑:
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => Car(
appLanguage: appLanguage,
user: user,
level: "${100 + level * 10 + ID_CAR_ACTIVITY}",
message: inputMessage,
),
),
);
当我退出游戏时:
if (Navigator.canPop(context)) {
Navigator.pop(context);
} else {
Navigator.pushReplacement(
context,
MaterialPageRoute(
builder: (context) => MainTitle(
appLanguage: appLanguage,
userIn: user,
messageIn: "0",
),
),
//(Route<dynamic> route) => route is MainTitle,
);
}
这是我的 Car.dart 的处置:
@override
void dispose() {
timerConnexion?.cancel();
timer?.cancel();
_timer?.cancel();
timerRedirection?.cancel();
_controllerTopCenter?.dispose();
pauseTimer?.cancel();
game.timerPause?.cancel();
gameUI?.state?.dispose();
super.dispose();
}
当我重新开始游戏时:
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(
builder: (context) => new Car(
appLanguage: appLanguage,
user: user,
level: game.getStarLevel().toString(),
message: "fromRestart",
),
),
(Route<dynamic> route) => route is Car);
这是退出游戏的好方法还是有其他更优化的方法?
谢谢