Browse Source

streamController 关闭置空

jun7572 5 years ago
parent
commit
c733b761d0
3 changed files with 9 additions and 7 deletions
  1. 3 2
      example/lib/main.dart
  2. 1 0
      lib/amap_location.dart
  3. 5 5
      lib/amap_view_controller.dart

+ 3 - 2
example/lib/main.dart

@@ -76,11 +76,12 @@ class HomePageState extends State<HomePage> {
                       locationMode: LocationMode.Battery_Saving,));
                 AmapLocation.instance.locationStream.listen((d) {
                   print(d.city);
+                  AmapLocation.instance.disposed();
                   // stop location when isOnceLocation is true
 //                     AmapLocation.instance.disposed();
                 });
-                await Future.delayed(Duration(seconds: 60));
-                AmapLocation.instance.disposed();
+//                await Future.delayed(Duration(seconds: 60));
+
               },
               child: Text("get lcoation"),
             ),

+ 1 - 0
lib/amap_location.dart

@@ -42,6 +42,7 @@ class AmapLocation {
   Future<void> disposed() async {
     if (!_locationStreamController.isClosed) {
       await _locationStreamController.close();
+      _locationStreamController=null;
     }
     return await _channel.invokeMethod("closeLocation");
   }

+ 5 - 5
lib/amap_view_controller.dart

@@ -29,24 +29,24 @@ class AmapViewController {
   }
 
   Future<void> setMapMarkers(List<AmapMarker> markers) async {
-    return await _methodChannel.invokeMethod(
+    return  _methodChannel.invokeMethod(
         "setMarkers", {"markers": markers.map((f) => f.toMap()).toList()});
   }
 
   Future<void> onCreateMapView() async {
-    return await _methodChannel.invokeMethod('onCreate');
+    return  _methodChannel.invokeMethod('onCreate');
   }
 
   Future<void> onPauseMapView() async {
-    return await _methodChannel.invokeMethod('onPause');
+    return  _methodChannel.invokeMethod('onPause');
   }
 
   Future<void> onResumeMapView() async {
-    return await _methodChannel.invokeMethod('onResume');
+    return  _methodChannel.invokeMethod('onResume');
   }
 
   Future<void> moveCamera(Map<String,double> map) async {
-    return await _methodChannel.invokeMethod('moveCamera',{"data":map});
+    return  _methodChannel.invokeMethod('moveCamera',{"data":map});
   }
 
   void dispose() {