[android_alarm_manager] Prep for version update (#713) * Update documentation * Remove getSharedFlutterView * Update CHANGELOG.md * Roll version to 0.2.0
diff --git a/packages/android_alarm_manager/CHANGELOG.md b/packages/android_alarm_manager/CHANGELOG.md index 316fb9c..18a35a4 100644 --- a/packages/android_alarm_manager/CHANGELOG.md +++ b/packages/android_alarm_manager/CHANGELOG.md
@@ -1,3 +1,9 @@ +## 0.2.0 + +* **Breaking change**. A new isolate is always spawned for the background service + instead of trying to share an existing isolate owned by the application. +* **Breaking change**. Removed `AlarmService.getSharedFlutterView`. + ## 0.1.1 * Updated Gradle tooling to match Android Studio 3.1.2.
diff --git a/packages/android_alarm_manager/README.md b/packages/android_alarm_manager/README.md index a4ce43e..b25eba3 100644 --- a/packages/android_alarm_manager/README.md +++ b/packages/android_alarm_manager/README.md
@@ -34,22 +34,10 @@ } ``` -`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: - -```java -@Override -public FlutterNativeView createFlutterNativeView() { - return AlarmService.getSharedFlutterView(); -} -``` - -See the [example's](https://github.com/flutter/plugins/tree/master/packages/android_alarm_manager/example) -[MainActivity](https://github.com/flutter/plugins/blob/master/packages/android_alarm_manager/example/android/app/src/main/java/io/flutter/androidalarmmanagerexample/MainActivity.java) -to see an example. +`printHello` will then run (roughly) every minute, even if the main app ends. However, `printHello` +will not run in the same isolate as the main application. Unlike threads, isolates do not share +memory and communication between isolates must be done via message passing (see more documentation on +isolates [here](https://api.dartlang.org/stable/2.0.0/dart-isolate/dart-isolate-library.html)). 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
diff --git a/packages/android_alarm_manager/android/src/main/java/io/flutter/plugins/androidalarmmanager/AlarmService.java b/packages/android_alarm_manager/android/src/main/java/io/flutter/plugins/androidalarmmanager/AlarmService.java index 5e2fda1..505ec84 100644 --- a/packages/android_alarm_manager/android/src/main/java/io/flutter/plugins/androidalarmmanager/AlarmService.java +++ b/packages/android_alarm_manager/android/src/main/java/io/flutter/plugins/androidalarmmanager/AlarmService.java
@@ -113,10 +113,6 @@ manager.cancel(existingIntent); } - public static FlutterNativeView getSharedFlutterView() { - return sBackgroundFlutterView; - } - public static boolean setBackgroundFlutterView(FlutterNativeView view) { if (sBackgroundFlutterView != null && sBackgroundFlutterView != view) { Log.i(TAG, "setBackgroundFlutterView tried to overwrite an existing FlutterNativeView");
diff --git a/packages/android_alarm_manager/example/android/app/src/main/java/io/flutter/plugins/androidalarmmanagerexample/MainActivity.java b/packages/android_alarm_manager/example/android/app/src/main/java/io/flutter/plugins/androidalarmmanagerexample/MainActivity.java index d920cee..3d9afa5 100644 --- a/packages/android_alarm_manager/example/android/app/src/main/java/io/flutter/plugins/androidalarmmanagerexample/MainActivity.java +++ b/packages/android_alarm_manager/example/android/app/src/main/java/io/flutter/plugins/androidalarmmanagerexample/MainActivity.java
@@ -1,11 +1,8 @@ package io.flutter.plugins.androidalarmmanagerexample; import android.os.Bundle; -import android.util.Log; import io.flutter.app.FlutterActivity; import io.flutter.plugins.GeneratedPluginRegistrant; -import io.flutter.plugins.androidalarmmanager.AlarmService; -import io.flutter.view.FlutterNativeView; public class MainActivity extends FlutterActivity { public static final String TAG = "AlarmExampleMainActivity"; @@ -15,10 +12,4 @@ super.onCreate(savedInstanceState); GeneratedPluginRegistrant.registerWith(this); } - - @Override - public FlutterNativeView createFlutterNativeView() { - Log.i(TAG, "createFlutterNativeView"); - return AlarmService.getSharedFlutterView(); - } }
diff --git a/packages/android_alarm_manager/pubspec.yaml b/packages/android_alarm_manager/pubspec.yaml index 1a5f024..1eea46c 100644 --- a/packages/android_alarm_manager/pubspec.yaml +++ b/packages/android_alarm_manager/pubspec.yaml
@@ -1,7 +1,7 @@ name: android_alarm_manager description: Flutter plugin for accessing the Android AlarmManager service, and running Dart code in the background when alarms fire. -version: 0.1.1 +version: 0.2.0 author: Flutter Team <flutter-dev@googlegroups.com> homepage: https://github.com/flutter/plugins/tree/master/packages/android_alarm_manager