当应用程序处于恢复状态但仍显示空值时,我正在尝试更新dynamiclink的值。我如何更新应用程序中的变量值处于恢复状态,即使没有杀死应用程序。
例如,在动态链接扫描一个二维码并重新定向到我们的应用程序时,应用程序是后台的,而我扫描第二个二维码时,动态链接值没有更新
String dynamiclink;
void didChangeAppLifecycleState(AppLifecycleState state) {
if (state == AppLifecycleState.resumed) {
setState(() {
dynamiclink = " ";
});
_timerLink = new Timer(const Duration(milliseconds: 850), () {
_retrieveDynamicLink();
});
}else{
_retrieveDynamicLink();
}
}
// here i am passing value in variable named dynamiclink
Future<void> _retrieveDynamicLink() async {
final PendingDynamicLinkData data =
await FirebaseDynamicLinks.instance.getInitialLink();
final Uri deepLink = data?.link;
dynamiclink = deepLink.toString();
}发布于 2020-06-26 02:54:22
使用WidgetBindingObserver扩展您的类
class MyApp extends WidgetBindingObserver实现了这两个函数,您可以在其中添加和处理小部件绑定观察器,绑定观察器将收到不同应用程序事件的通知
@override
void initState() {
WidgetsBinding.instance.addObserver(this);
super.initState();
}
@override
void dispose() {
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}最后
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
if (state == AppLifecycleState.resumed) {
setState(() {
dynamiclink = " ";
});
_timerLink = new Timer(const Duration(milliseconds: 850), () {
_retrieveDynamicLink();
});
}else{
_retrieveDynamicLink();
}
}
}这应该是可行的。
有关详细信息,请参阅:
https://stackoverflow.com/questions/62579284
复制相似问题