gpt4 book ai didi

flutter - 如何打开用户终止应用程序的最后一页?

转载 作者:IT王子 更新时间:2023-10-29 06:53:11 25 4
gpt4 key购买 nike

我是菜鸟,我已经制作了大约 6-8 页的应用程序。我只想从用户离开或完全终止应用程序的最后一个屏幕继续。

也可以使用 mobx 吗??

最佳答案

您可以在每次打开新路线时保留路线名称,然后在每次打开应用程序时查找最后一条路线:

String lastRouteKey = 'last_route';

void main() async {
SharedPreferences preferences = await SharedPreferences.getInstance();
String lastRoute = preferences.getString(lastRouteKey);
runApp(MyApp(lastRoute));
}

class MyApp extends StatelessWidget {
final String lastRoute;

MyApp(this.lastRoute);

@override
Widget build(BuildContext context) {
bool hasLastRoute = getWidgetByRouteName(lastRoute) != null;

return MaterialApp(
home: Foo(),
initialRoute: hasLastRoute ? lastRoute : '/',
onGenerateRoute: (RouteSettings route) {
persistLastRoute(route.name);
return MaterialPageRoute(
builder: (context) => getWidgetByRouteName(route.name),
);
},
);
}

Widget getWidgetByRouteName(String routeName) {
switch (routeName) {
case '/': return MainWidget();
// Put all your routes here.
default: return null;
}
}

void persistLastRoute(String routeName) async {
SharedPreferences preferences = await SharedPreferences.getInstance();
preferences.setString(lastRouteKey, routeName);
}
}

请注意,这不是 100% 准确,因为持久化是异步的,用户可能会在应用程序完成之前关闭它。但是,它通常发生得非常快,并且应该几乎一直有效。

关于flutter - 如何打开用户终止应用程序的最后一页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56201714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com