我使用的是flutter dropbox client,它需要一些初始化代码,在每个应用程序会话中只运行一次,否则会导致整个应用程序崩溃。
有没有什么方法可以防止在热重启时调用部分代码?我试着在main()
func之前设置全局变量,然后检查flag是否被设置-但在热重启时它也被重置了。
我使用的是flutter dropbox client,它需要一些初始化代码,在每个应用程序会话中只运行一次,否则会导致整个应用程序崩溃。
有没有什么方法可以防止在热重启时调用部分代码?我试着在main()
func之前设置全局变量,然后检查flag是否被设置-但在热重启时它也被重置了。
1条答案
按热度按时间xmq68pz91#
当执行
hot restart
时,它会重置包括全局变量在内的所有内容。但它不会重置本地存储在设备内部的数据。您可以使用shared_preferences package
来重置。共享首选项将数据存储到仅可由您的应用使用的特定于平台的位置。
当你的init运行时,你可以将一个值存储到你的共享首选项中:
因此,在运行init之前,您可以首先检查它是否存在。
现在,如果你想重置这些数据,你可以通过添加以下代码或在你的应用中创建一个临时按钮来执行: