用户登录

StreamController 可以控制管理 Stream .. 下面我们先去创建一个 StreamController .. 先在类里面添加一个 StreamController .. 这个 StreamController 控制的 stream 上的数据的类型是 String,就是字符串 .. 它的名字可以叫 _streamDemo ..

然后注释掉之前我们在 initState 里面添加的这个 _streamDemo .. .. 下面重新设置一下 _streamDemo .. 新建一个 StreamController .. 类型是 String ..

下面我们就可以使用这个叫 _streamDemo 的 Stream 控制器去控制 Stream 了 ..

监听 Stream .. 用的是 StreamController 上的 stream 属性上面的 listen 方法 ..

不再需要的 Stream 要把它关掉 .. 在类里面,添加一个 dispose 方法 .. 里面可以执行一下 _streamDemo 上的 close() 方法 .. 把小部件移除掉的时候会执行这个 dispose 方法 .. 所以在这里正好我们也把不需要的 Stream 关掉 ..

添加数据

然后在界面上再添加一个按钮 .. 可以演示一下怎么往 Stream 上添加数据 .. 按钮文字是 Add .. 处理方法是 _addDataToStream .. 找个地方再去定义一下它 .. 名字是 _addDataToStream .. 把它标记成一个 async 方法 ..

里面先在控制台上输出点文字 .. Add data to stream.

下面再添加一个数据 .. 类型是 String ,我们创建的 StreamController 支持的数据类型就是 String .. 名字叫 data .. await ... 再执行一下 fetchData .. 这个方法是我们之前定义的 .. 它会等待一会,然后返回一个 hello ~ ..

最后再执行一下 _streamDemo 这个 Stream 控制器上的 add ,往 Stream 上面添加一个数据 .. 这个数据就是 data ..

监听 Stream 的时候,我们已经设置了有数据的时候要做的事情 .. 这里就是在控制台上输出得到的数据 ..

打开命令面板 .. 执行一下 hot restart ..

出现了一个错误 ..

这个是因为我们要用的方法的名字是 _addDataToStream ...

重新再执行一下 hot restart ...

然后按一下应用界面上的这个 Add 按钮 .. 它会执行 StreamController 上的 add 方法,往它控制的 Stream 上面添加一个数据 .. 得到了数据以后,会在控制台上输出这个数据 ..

再按一下 Pause,它会执行订阅上的 Pause,暂停订阅 .. 暂停以后再按一下 Add .. 在控制台上会输出一个 Add data to stream .. 不过并没有输出添加的数据 ..

按一下 Resume .. 会恢复订阅 .. 恢复以后,又会输出得到的数据了 ..

StreamController:控制 Stream《 Flutter 移动应用:Stream 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点