2

我正在构建一个带有 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);

这是退出游戏的好方法还是有其他更优化的方法?

谢谢

4

0 回答 0