用户登录

Stream 的 listen 方法返回的东西是一个 StreamSubscription .. 使用它我们可以暂停,恢复还可以取消监听 .. 或者叫取消订阅 ...

先在这个类里面,添加一个 StreamSubscription .. 名字是 _streamDemoSubscription .. 监听 stream 会返回一个 StreamSubscription .. 把它交给 _streamDemoSubscription ..

然后我们在界面上再去添加几个按钮 .. 在这个 Container 里面,添加一个 Center 小部件 .. 它的 child 是一个 Row .. 这个 Row 的 children 是一组按钮 .. 按钮可以使用 FlatButton .. 按钮的 child 是文字 ... 文字是 Pause .. 再添加一个 onPressed .. 用一下 _pauseStream 这个方法 ..

再复制两份这个按钮 .. 然后修改一下 .. 按钮文字是 Resume ... 点按方法用一下 _resumeStream ... 最后这个按钮是 Cancel ... 用一下 _cancelStream ..

下面再去定义这几个方法 .. 先添加一个 _pauseStream ... 在这个方法里面,先在控制台输出一个 Pause subscription ..

然后再执行一下 StreamSubscription 上面的 pause .. 停止订阅 .. 执行一下 _streamDemoSubscription 上面的 pause 方法 ..

再复制两份这个方法 .. 修改一下方法的名字 .. 这个是 _resumeStream ,用它恢复订阅 .. 输出的文字是 Resume ... 执行的就是 StreamSubscription 上的 resume ...

下面这个方法的名字是 _cancelStream .. 输出的文字是 Cancel subscription .. 执行的方法是 StreamSubscription 上的 cancel ,它可以取消订阅 ...

在这个 fetchData 方法里面, 等待的时间可以设置的长一点 .. 比如 5 秒 .. 5 秒钟以后,让它 return 一个 hello ~ ...

再去试一下这些处理监听状态的功能 ..

这组按钮可以让它居中显示 .. 找到 Row 这个小部件 .. 设置一下它的 mainAxisAlignment .. 值是 MainAxisAlignment.center ..

再执行一下 hot restart ...

然后按一下界面上的 Pause 按钮 .. 在控制台上会输出一个 Pause subscription ... 暂停了对 Stream 的订阅 ..

再按一下 Resume ,恢复一下订阅 .. 恢复以后得到了 Stream 上的数据,就会把它输出到控制台上 ..

再试一下 .. 执行 hot restart ...

这次我们按一下界面上的 Cancel ... 取消订阅 .. 取消以后, 在 Stream 上就不会生产数据了 .. 再按一下 Resume ... 取消的这个订阅没有办法恢复 .. 不再需要的 Stream,我们就可以取消对它的订阅 ...

暂停、恢复、取消监听 Stream《 Flutter 移动应用:Stream 》

统计

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

社会化网络

关于

微信订阅号

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