ChangeNotifierProvider、ChangeNotifier、Consumer的關(guān)系
成都創(chuàng)新互聯(lián)專業(yè)提供成都主機托管四川主機托管成都服務器托管四川服務器托管,支持按月付款!我們的承諾:貴族品質(zhì)、平民價格,機房位于中國電信/網(wǎng)通/移動機房,IDC機房托管服務有保障!
1、ChangeNotifierProvider的父類ListenableProvider,ListenableProvider中實現(xiàn)了_startListening方法,_startListening主要是將Element的刷新方法添加到ChangeNotifier中的_listeners中
2、ListenableProvider將startListening傳入其父類InheritedProvider,InheritedProvider主要是創(chuàng)建delegate = _CreateInheritedProvider。這個delegate就是_CreateInheritedProvider中delegate.startListening中的delegate
1、ChangNotifier負責更新UI
ChangeNotifier中notifyListeners,通過遍歷_listeners,實現(xiàn)強制刷新UI
1、Consumer:包裹待刷新UI,在buildWithChild中將Provider.ofT(context)傳入builder方法
2、解析 Provider.ofT(context)
Provider.ofT(context)是獲取ChangeNotifier對象的方法
Provider.of中通過傳入的context,獲取父視圖為inheritedElement的對象
獲取到inheritedElement,通過inheritedElement.getValue的方式獲取ChangeNotifier對象
7、繼續(xù)查看inheritedElement?.value。通過斷點可以進入_CreateInheritedProvider 類中g(shù)et Value方法。調(diào)用startListening將當前Consumer包裹的element添加到Prorivder的_listeners數(shù)組中
通過調(diào)用notifyListeners()來刷新所有Consumer完整的Provider執(zhí)行流程大概就是這樣,流程圖如下
第一串口要打開,第二向這個打開的串口發(fā)送數(shù)據(jù)
你完全可以在 intinputlen = MSComm1.InBufferCount 此句下一個斷點(將光標移動到此句前面 然后按F9) 當程序運行是 看是否停留在此句代碼 看接收事件是否工作
當前題目:flutter斷點,flutter埋點
文章轉(zhuǎn)載:http://aaarwkj.com/article32/dsspipc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、外貿(mào)網(wǎng)站建設(shè)、品牌網(wǎng)站建設(shè)、網(wǎng)站導航、微信公眾號、Google
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)