Задача в режиме headless не запускаестя после закрытия приложения
Моё приложение должно отсылать уведомление пользователю, когда его батарея садится до указанного им уровня. Всё так и работает, пока не убирешь приложение из "Недавних". Тогда уведомления просто не приходят.
Код функции main()
void main() {
runApp(App());
BackgroundFetch.registerHeadlessTask(checkBatteryInfo);
BackgroundFetch.configure(
BackgroundFetchConfig(
minimumFetchInterval: 15,
stopOnTerminate: false,
enableHeadless: true,
startOnBoot: true),
checkBatteryInfo);
}
Код колбэка
void checkBatteryInfo(String taskId) async {
FlutterLocalNotificationsPlugin flnp = new FlutterLocalNotificationsPlugin();
AndroidInitializationSettings android =
new AndroidInitializationSettings('@mipmap/ic_launcher');
InitializationSettings settings =
new InitializationSettings(android: android);
flnp.initialize(settings);
AndroidNotificationDetails androidPlatformChannelSpecifics =
new AndroidNotificationDetails('battery_notifications',
'Уведомления о батарее', 'Уведомления при разряде батареи',
importance: Importance.max, priority: Priority.high);
NotificationDetails platformChannelSpecifics = new NotificationDetails(
android: androidPlatformChannelSpecifics,
);
var batteryInfo = await BatteryInfoPlugin().androidBatteryInfo;
SharedPreferences prefs = await SharedPreferences.getInstance();
if (batteryInfo.batteryLevel < prefs.getDouble('warnValue') &&
batteryInfo.chargingStatus != ChargingStatus.Charging) {
flnp.show(0, 'У тебя садится батарея!', 'Поставь телефон на зарядку',
platformChannelSpecifics);
} else if (batteryInfo.batteryLevel < prefs.getDouble('recommendValue') &&
batteryInfo.chargingStatus != ChargingStatus.Charging &&
!prefs.getBool('shownRecommend')) {
flnp.show(0, 'Рекомендую зарядить батарею', 'На всякий случай ;)',
platformChannelSpecifics);
} else {
prefs.setBool('shownRecommend', false);
}
BackgroundFetch.finish(taskId);
}
Могу ещё кода добавить, если надо.