Описание
Я создаю приложение Flutter для повышения производительности, которое помогает пользователям оставаться сосредоточенными, отслеживая сеансы и планируя напоминания о задачах с помощью локальных уведомлений.
Обзор приложения
- Пользователи могут создавать задачи с определенным временем напоминания
- Каждая задача планирует локальное уведомление.
- Пользователи могут начинать сеансы фокусировки (на основе таймера).
- Приложение отслеживает такую статистику, как:
общее время концентрации - ежедневный прогресс
- полосы
Проблема
В режиме отладки все работает правильно, но в релизном APK:
Уведомления не срабатывают
Приложение иногда автоматически закрывается при запуске
Ранее запланированные задачи не отправляют уведомления
Инициализация (main.dart)
Код: Выделить всё
void main() async {
WidgetsFlutterBinding.ensureInitialized();
try {
await NotificationService.init();
final taskService = TaskService();
await taskService.rescheduleAllTasks();
} catch (e) {
// prevent crash
}
if (Platform.isAndroid) {
final androidInfo = await DeviceInfoPlugin().androidInfo;
if (androidInfo.version.sdkInt >= 33) {
await Permission.notification.request();
}
}
runApp(const FlamziApp());
}
Код: Выделить всё
await notificationsPlugin.zonedSchedule(
id,
title,
body,
scheduledDate,
notificationDetails,
androidScheduleMode: AndroidScheduleMode.inexactAllowWhileIdle,
uiLocalNotificationDateInterpretation:
UILocalNotificationDateInterpretation.absoluteTime,
);
- Разрешение на уведомления предоставлено
- Использование действительного будущего времени (не прошлого)
- Отлично работает в режиме отладки
- Нет видимых ошибок в журналах отладки
- Использование планирования на основе часового пояса ()
Код: Выделить всё
zonedSchedule - Использование режима inexactAllowWhileIdle
- Уведомления должны срабатывать в запланированное время
- Приложение не должно аварийно завершать работу при запуске
- Задачи должны корректно перепланироваться при запуске приложения
- Уведомления никогда не появляются
- Приложение иногда сразу же закрывается при запуске
- Кажется, что планирование происходит незаметно