我已经安装了 Android Studio 3.0,并且已经成功编译并运行了应用程序。
设备文件资源管理器窗格以红色显示上述错误消息,仅此而已。
我一直在寻找一种简单的方法来避免由于未取消订阅而导致的内存泄漏。大多数时候,我只希望后端提供一个响应。然后,我想退订。那么为什么不在回调中调用它呢?
onSubmit(){
var subscription = this.puzzleService.login(this.nameoremail, this.password).subscribe( success =>{
if(success){
this.router.navigate(['/puzzles']);
}
else{
this.message="Login failed. Please try again.";
}
this.loading=false;
subscription.unsubscribe();
});
this.loading=true;
}
Run Code Online (Sandbox Code Playgroud)
请注意将订阅分配给局部变量。然后,将该局部变量锁定在闭包内部,并告知其完成工作时退订。没有类变量,没有takeUntil,仅此而已。
它编译并运行没有错误。我对调试器还不太熟悉,无法确定可观察对象是否实际销毁并随后进行了垃圾回收。
有什么我想念的吗?可以更熟悉调试器的人纠正我吗?因为如果这行得通,我将在所有地方都这样做。除了我的pollWords()函数中...
这似乎比我所提倡的其他解决方案简单得多。我想我甚至根本不需要关闭,因为当我在调试器中查看它时,我看到“ _this”是“ this”的关闭,而“ this”实际上是可观察的。因此,如果有某种方法可以防止“ this”发生麻烦,那么我可以调用“ this.unsubscribe()”并完成操作。并不是说对象引用关闭是一件可怕的事情……
参考文献:
当我尝试从android studio内部运行flutter应用程序时,得到以下输出:
/home/jgilmore/src/dart-sdk/bin/dart --enable-asserts --enable-vm-service:34139 /home/jgilmore/src/fht_tool/lib/main.dart
Observatory listening on http://127.0.0.1:34139/
lib/main.dart:1: Warning: Interpreting this as package URI, 'package:fht_tool/main.dart'.
file:///home/jgilmore/src/flutter/packages/flutter/lib/src/material/animated_icons.dart:9:8: Error: Not found: 'dart:ui'
import 'dart:ui' as ui show Paint, Path, Canvas;
^
file:///home/jgilmore/src/flutter/packages/flutter/lib/src/material/animated_icons.dart:10:8: Error: Not found: 'dart:ui'
import 'dart:ui' show lerpDouble;
^
file:///home/jgilmore/src/flutter/packages/flutter/lib/src/material/arc.dart:6:8: Error: Not found: 'dart:ui'
import 'dart:ui' show lerpDouble;
^
file:///home/jgilmore/src/flutter/packages/flutter/lib/src/material/colors.dart:5:8: Error: Not found: 'dart:ui'
import 'dart:ui' show Color;
^
file:///home/jgilmore/src/flutter/packages/flutter/lib/src/material/dialog.dart:6:8: Error: Not found: 'dart:ui'
import 'dart:ui';
^
file:///home/jgilmore/src/flutter/packages/flutter/lib/src/material/input_border.dart:6:8: Error: Not found: 'dart:ui'
import 'dart:ui' show lerpDouble;
^ …Run Code Online (Sandbox Code Playgroud)