# #android #firebase #flutter #dart #google-cloud-functions
Вопрос:
Я внедряю функцию онлайн/оффлайн в приложении для голосовых вызовов моей группы. я хочу удалить пользователей из списка активных пользователей, когда они нажимают меню(чтобы открыть все открытые приложения на устройстве), и смахнуть мое приложение. Так что там я мог бы запустить функцию firebase для удаления. Прямо сейчас я могу работать только на willpop и когда приложение находится в фоновом режиме.
Ответ №1:
Попробуйте написать этот код в методе dispose.
Комментарии:
1. Я написал коды. Они выполняются, когда страница закрыта, а не когда приложение закрыто.
Ответ №2:
Вы должны использовать «didChangeAppLifecycleState«.
class HomePage extends StatefulWidget {
@override
_HomePageState createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> with WidgetsBindingObserver {
@override
void initState() {
super.initState();
// add the observer
WidgetsBinding.instance.addObserver(this);
}
@override
void dispose() {
// remove the observer
WidgetsBinding.instance.removeObserver(this);
super.dispose();
}
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
super.didChangeAppLifecycleState(state);
// These are the callbacks
switch (state) {
case AppLifecycleState.resumed:
// widget is resumed
break;
case AppLifecycleState.inactive:
// widget is inactive
break;
case AppLifecycleState.paused:
// widget is paused
break;
case AppLifecycleState.detached:
// widget is detached
break;
}
}
@override
Widget build(BuildContext context) => Scaffold();
}
Всегда неактивен пользователь в AppLifecycleState.приостановлен
и снова активен пользователь в AppLifecycleState.возобновлен
Комментарии:
1. спасибо тебе, самин. Когда мой пользователь использует приложение в фоновом режиме, оно все еще активно, потому что может слышать звук/и может говорить также с помощью микрофона. Это отлично работает. Но я хочу определить, когда, пока мой находится в фоновом режиме. Пользователь удаляет все запущенные приложения. Чтобы я мог удалить пользователя из активных.
2. Затем сделайте это в AppLifecycleState.отдельно. Проверьте жизненный цикл как свой собственный и определите, куда вы должны поместить логин. Трудно проверить, было ли приложение убито, смахнув с последнего экрана убитого ОС. Поэтому реализуйте это, проверьте, какой метод вызывает какую операцию и код соответственно.