better background tasks

This commit is contained in:
brausjonas
2024-09-22 15:10:47 +02:00
parent 54eb6814da
commit 7bd8ae8373
4 changed files with 47 additions and 21 deletions
+27 -20
View File
@@ -10,6 +10,7 @@ import 'package:disable_battery_optimization/disable_battery_optimization.dart';
import 'package:flutter_background_service/flutter_background_service.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'dart:math';
import 'package:workmanager/workmanager.dart';
String formatMinutes(int minutes) {
int hours = minutes ~/ 60;
@@ -29,6 +30,8 @@ String formatMinutes(int minutes) {
@pragma('vm:entry-point')
void callbackDispatcher() async {
WidgetsFlutterBinding.ensureInitialized();
Map content = await FileHandler.fileContent;
int id = 15;
for (String key in content.keys) {
@@ -62,26 +65,26 @@ void callbackDispatcher() async {
}
}
@pragma('vm:entry-point')
void onStart(ServiceInstance service) {
Timer.periodic(const Duration(minutes: 15), (timer) {
callbackDispatcher();
});
}
// @pragma('vm:entry-point')
// void onStart(ServiceInstance service) {
// Timer.periodic(const Duration(minutes: 15), (timer) {
// callbackDispatcher();
// });
// }
Future<void> initService() async {
final service = FlutterBackgroundService();
await service.configure(
iosConfiguration: IosConfiguration(),
androidConfiguration: AndroidConfiguration(
onStart: onStart,
isForegroundMode: false,
autoStart: true,
autoStartOnBoot: true));
service.startService();
}
// Future<void> initService() async {
// final service = FlutterBackgroundService();
//
// await service.configure(
// iosConfiguration: IosConfiguration(),
// androidConfiguration: AndroidConfiguration(
// onStart: onStart,
// isForegroundMode: false,
// autoStart: true,
// autoStartOnBoot: true));
//
// service.startService();
// }
void main() async {
WidgetsFlutterBinding.ensureInitialized();
@@ -95,7 +98,11 @@ void main() async {
)
]);
await initService();
Workmanager().initialize(callbackDispatcher);
Workmanager().registerPeriodicTask("1", "notifyTask", frequency: Duration(minutes: 15));
// await initService();
runApp(const MyApp());
}