Flutter队列任务如何实现


本篇内容介绍了“Flutter队列任务如何实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!任务队列,那当然要有个队列。这个队列的任务内容应该是返回FutureFunction,因为我需要得到他处理完成的结果,比如等待弹窗关闭时return,才表示这个任务被完成。然后是加入队列的方法add然后想到,队列是不是最好去重?或者可选去重。那一个Function如何去重呢,我们可以使用它的hashCode,同一个FunctionhashCode相同。即我们可以按上面免费云主机域名这样定义,同一个类同一个实例下同一个Function,就是相同的hashCode。若是以下这种写法则hashCode不一样,每次add都相当于一个新的Function。假如不需要去重,可以用第二种。也可以主动指定taskId来选择哪些需要去重(即使内容不一样),哪些不需要。修改一下add,增加taskId。同时hashCode应该作为主要的key,修改一下队列类型。 最终如下:-1时则不去重,也把最终的taskId返回。有添加任务的方法,那也需有移除任务的方法以taskId/hashCode为准。使用者可以自己判断是否已包含对应的任务任务队列的进出基本成型,开始处理任务。很简单,取出任务,然后执行任务,最后移除任务这里加了个dealing,表示任务正在处理中的状态,正在处理的话,不允许执行下一个任务。在执行完成(或失败)后,自动触发下一个任务。add中也可以加入startLoop,使添加任务后自动启动任务循环。基本的任务队列已经完成。不过每个任务其实一般都会有个条件,确认符合当前场景才执行。比如说的确是新人且在首页,才显示新人优惠弹窗。条件可以是整个任务队列统一的条件,也可以是某个任务特定的条件。这里类型用FutureOr,有可能需要等待一下才能确认条件。任务对应的条件,也根据taskId来存储。设置总条件,或补充条件原则上应该既满足总条件也满足任务条件实例化TaskQueue添加任务并开始任务注意设置条件要返回bool。还可以加入类似延时等操作,跟条件一样配置即可。太久的操作不要像上面一样写在condition中,可能执行完之后又不满足了,根据具体情况考虑。一般来说类似弹窗的returnawait showDialog就可以等待弹窗页面结束,再进行下一个。跨页面还是当前页面的控制,只需要考虑是全局实例TaskQueue还是页面内实例TaskQueue。“Flutter队列任务如何实现”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注百云主机网站,小编将为大家输出更多高质量的实用文章!

相关推荐: CSS3如何控制HTML元素实现动画效果

本篇内容介绍了“CSS3如何控制HTML元素实现动画效果”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.对元素transform的控制代码如下:CSS3中,元…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 03/12 16:51
下一篇 03/12 16:51

相关推荐