gpt4 book ai didi

android - 每当用户关闭应用程序时,我是否想在应用程序 flutter 上执行某个功能?

转载 作者:行者123 更新时间:2023-11-29 05:27:35 26 4
gpt4 key购买 nike

我用flutter开发了一个应用程序,它有一个带有OneSignal的聊天和通知系统,在这个应用程序中,playerId在应用程序第一次打开时注册,并在用户登录系统时链接到用户。

用户还可以选择保持登录状态!

用例:

当用户选择保持登录状态时,没关系,因为他会正常收到您的聊天通知。但当他选择不登录时,我遇到了问题。

当他使用应用程序时,他应该链接到playerId,但是当他关闭应用程序时(无论他如何操作,因为在手机上可以通过多种方式完成),您应该调用以下函数:取消用户与playerId的链接,使其不再接收聊天通知!

我的问题是,如何在应用程序关闭时执行此功能?

我想这样做是因为用户可以在不同的智能手机上访问系统。

我想到了 WillPopScope,但这只能检测接力棒何时发射。

有人可以帮助我吗?谢谢!

最佳答案

您可以尝试监听应用程序的生命周期事件

https://medium.com/pharos-production/flutter-app-lifecycle-4b0ab4a4211a

import 'package:flutter/foundation.dart';
import 'package:flutter/widgets.dart';

class LifecycleEventHandler extends WidgetsBindingObserver {
LifecycleEventHandler({this.resumeCallBack, this.suspendingCallBack});

final AsyncCallback resumeCallBack;
final AsyncCallback suspendingCallBack;

@override
Future<Null> didChangeAppLifecycleState(AppLifecycleState state) async {
switch (state) {
case AppLifecycleState.inactive:
case AppLifecycleState.paused:
case AppLifecycleState.suspending:
await suspendingCallBack();
break;
case AppLifecycleState.resumed:
await resumeCallBack();
break;
}
}
}


class AppWidgetState extends State<AppWidget> {
void initState() {
super.initState();

WidgetsBinding.instance.addObserver(
new LifecycleEventHandler(resumeCallback(() => setState((){}))
);
}
...
}

关于android - 每当用户关闭应用程序时,我是否想在应用程序 flutter 上执行某个功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58011337/

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