Я пытаюсь запустить AlarmManager, когда вызывается метод dispose ().Но похоже, что dispose () никогда не вызывается.Я не получаю никаких выходных журналов, и отладчик не ломается в этом методе.Когда следует вызывать dispose ().Когда я нажимаю кнопку BACK / HOME (эквивалент onStop ()) или только когда приложение убивается системой?Я хочу запустить AlarmManager, когда приложение полностью закрыто.
Это правильный способ сделать это в Flutter?:
class MyApp extends StatefulWidget {
@override
MyAppState createState() {
return new MyAppState();
}
}
class MyAppState extends State<MyApp> {
MailSenderController controller = MailSenderController(...);
@override
void initState() {
super.initState();
controller.init();
}
@override
void dispose() {
log.info("Disposing MailSenderController"); // All levels, print(rec.message)
controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return ServicesInheritedWidget(
controller,
child: MaterialApp(
title: 'Mail Sender',
home: MyHomePage(title: 'Mail Sender'),
),
);
}
}
class MailSenderController {
// (...)
void dispose() {
(() async {
await sendDelayedSubscription?.cancel();
log.info("AndroidAlarmManager sending");
AndroidAlarmManager.periodic(_DELAY_LONG,
_ALARM_MANAGER_ID,
alarmManagerSendMails,
rescheduleOnReboot: true);
})();
}
}