android_alarm_manager 0.0.5 copy "android_alarm_manager: ^0.0.5" to clipboard
android_alarm_manager: ^0.0.5 copied to clipboard

discontinued
outdatedDart 1 only

Flutter plugin for accessing the Android AlarmManager service, and running Dart code in the background when alarms fire.

android_alarm_manager #

pub package

A Flutter plugin for accessing the Android AlarmManager service, and running Dart code in the background when alarms fire.

Getting Started #

After importing this plugin to your project as usual, add the following to your AndroidManifest.xml:

<service
    android:name="io.flutter.androidalarmmanager.AlarmService"
    android:exported="false"/>

Then in Dart code add:

import 'package:android_alarm_manager/android_alarm_manager.dart';

void printHello() {
  final DateTime now = new DateTime.now();
  final int isolateId = Isolate.current.hashCode;
  print("[$now] Hello, world! isolate=${isolateId} function='$printHello'");
}

main() async {
  final int helloAlarmID = 0;
  runApp(...);
  await AndroidAlarmManager.periodic(const Duration(minutes: 1), helloAlarmID, printHello);
}

printHello will then run (roughly) every minute, even if the main app ends. If possible it will reuse the same Dart Isolate from the application's main activity. Additionally, if you would like a new main activity of your application to reuse the Isolate from an existing background service created by this plugin, add the following override to your app's MainActivity class:

@Override
public FlutterNativeView createFlutterNativeView() {
  return AlarmService.getSharedFlutterView();
}

See the example's MainActivity to see an example.

If alarm callbacks will need access to other Flutter plugins, including the alarm manager plugin itself, it is necessary to teach the background service how to initialize plugins. This is done by giving the AlarmService a callback to call in the application's onCreate method. See the example's Application overrides. In particular, its Application class is as follows:

public class Application extends FlutterApplication implements PluginRegistrantCallback {
  @Override
  public void onCreate() {
    super.onCreate();
    AlarmService.setPluginRegistrant(this);
  }

  @Override
  public void registerWith(PluginRegistry registry) {
    GeneratedPluginRegistrant.registerWith(registry);
  }
}

Which must be reflected in the application's AndroidManifest.xml. E.g.:

    <application
        android:name=".Application"
        ...

For help getting started with Flutter, view our online documentation.

For help on editing plugin code, view the documentation.

364
likes
0
pub points
88%
popularity

Publisher

verified publisherflutter.cn

Flutter plugin for accessing the Android AlarmManager service, and running Dart code in the background when alarms fire.

Homepage
Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

flutter

More

Packages that depend on android_alarm_manager