真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

關(guān)于靜態(tài)常量造成的那些見鬼的情況我不得感慨一下-創(chuàng)新互聯(lián)

  1. 如果在一個(gè)類的成員位置定義了靜態(tài)變量,如果想類生成的時(shí)候這個(gè)變量初始化,就得在構(gòu)造方法里初始化,而不能在成員位置。

    成都創(chuàng)新互聯(lián)專注于企業(yè)網(wǎng)絡(luò)營(yíng)銷推廣、網(wǎng)站重做改版、格爾木網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5技術(shù)、商城網(wǎng)站定制開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁(yè)設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為格爾木等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

 實(shí)際開發(fā)時(shí)的情景:友盟分享,分享的標(biāo)題在后臺(tái)動(dòng)態(tài)配置,沒有網(wǎng)絡(luò)的情況下顯示默認(rèn)值。

  關(guān)于靜態(tài)常量造成的那些見鬼的情況我不得感慨一下

 見鬼的情況:在有網(wǎng)的情況下,分享之后,然后斷網(wǎng)分享的標(biāo)題竟然不是默認(rèn)的TITLE,而是之前從網(wǎng)絡(luò)獲取的分享標(biāo)題。后來(lái)我苦思冥想,在成員位置明明初始化了,怎么沒有設(shè)置上默認(rèn)的標(biāo)題。

 問題解決:最終的問題還在于static關(guān)鍵字,static的生命周期。在有網(wǎng)的情況下分享成功之后TITLE被賦與了新值,而在TITLE所在的類(一個(gè)Popwindow)重新加載的時(shí)候,TITLE并不會(huì)隨著Popwindow的創(chuàng)建而創(chuàng)建,而是一直存在,一直保留著之前有網(wǎng)情況下分享的標(biāo)題。

2.對(duì)于Adapter,如果它的數(shù)據(jù)源是靜態(tài)變量的,數(shù)據(jù)源變了,adapter不需要notifydatasetchanged就會(huì)改變adapter的ui.

  實(shí)際開發(fā)時(shí)的情景:Spinner加載數(shù)據(jù)。

  關(guān)于靜態(tài)常量造成的那些見鬼的情況我不得感慨一下

 名師定制,是一個(gè)Fragment,Spinner的數(shù)據(jù)是通過一個(gè)叫做SpinnerData的類進(jìn)行管理的,里面全部是靜態(tài)的變量和方法,在進(jìn)入MainActivity里就通過getType()這個(gè)靜態(tài)方法來(lái)請(qǐng)求數(shù)據(jù),請(qǐng)求成功之后會(huì)將數(shù)據(jù)解析給classObjects這個(gè)靜態(tài)的List。

 錯(cuò)誤代碼1:在名師定制這個(gè)Fragment初始化的時(shí)候,

        classBeens.addAll(SpinnerData.classObjects);

 實(shí)際我在debug的時(shí)候,SpinnerData.classObjects是沒有真實(shí)的數(shù)據(jù)的。(在MainActivity里發(fā)起的異常請(qǐng)求還沒有成功的解析出數(shù)據(jù))

  錯(cuò)誤代碼2:作者以為SpinnerData里有數(shù)據(jù),將數(shù)據(jù)賦值給函數(shù)的Spinner

initSpinner1(context, spinner1, SpinnerData.typeNames);
initSpinner2(context, spinner2, SpinnerData.GlassNames);

 這時(shí)我debug的時(shí)候SpinnerData.typeNames,SpinnerData.ClassNames仍然是沒有數(shù)據(jù)的。后面除了

左邊的Spinner點(diǎn)擊的時(shí)候會(huì)聯(lián)動(dòng)右邊的Spinner,其它的沒有Spinner相關(guān)的數(shù)據(jù)請(qǐng)求操作。

 見鬼的情況:兩個(gè)Spinner竟然會(huì)有數(shù)據(jù)?。。。。。。。。?!于是我猜想靜態(tài)數(shù)據(jù)綁定adapter是不是不需要notify?做了下面一個(gè)試驗(yàn),給adapter綁定靜態(tài)的數(shù)據(jù)源,在按鈕點(diǎn)擊時(shí)只改變靜態(tài)數(shù)據(jù)源,這時(shí)ListView竟然添加了新的數(shù)據(jù)?。。。。。?!

  關(guān)于靜態(tài)常量造成的那些見鬼的情況我不得感慨一下

 這就解釋了兩個(gè)Spinner怎么一開始設(shè)置的沒有數(shù)據(jù)的數(shù)據(jù)源竟然會(huì)顯示數(shù)據(jù)。

 同時(shí)還有另外一個(gè)bug:如果不點(diǎn)擊左邊的spinner,直接點(diǎn)擊右邊的spinner,崩潰報(bào)classBeans角標(biāo)越界。還是Fragment一開始下面這行代碼的問題。

classBeens.addAll(SpinnerData.classObjects);

 因?yàn)樵贛ainActivity里執(zhí)行的SpinnerData的getType請(qǐng)求網(wǎng)絡(luò)的方法,無(wú)法知道它何時(shí)回調(diào)成功。于是在SpinnerData類里寫了個(gè)監(jiān)聽器,監(jiān)聽它的數(shù)據(jù)回調(diào)成功。

 關(guān)于靜態(tài)常量造成的那些見鬼的情況我不得感慨一下

 在Fragment里設(shè)置監(jiān)聽:

@Override
public void initData() {
    //監(jiān)聽數(shù)據(jù)源的變化,因?yàn)槭钱惒秸{(diào)用的,我不知道數(shù)據(jù)什么時(shí)候發(fā)生了變化。
    SpinnerData.setOnDataChangedListener(this);

 ...}

@Override
public void onDataChanged() {
    classBeens.clear();
    classBeens.addAll(SpinnerData.classObjects);
}

3.接入Geesee直播平臺(tái),將它的Player寫成單例之后出現(xiàn)的問題:

    第一次進(jìn)入app可以正常播放,再次進(jìn)入就無(wú)法正常播放。如果卸載app重裝第一次進(jìn)入也能

 正常播放,后來(lái)想想應(yīng)該是Player的生命周期太長(zhǎng)了,緩存太多播放的狀態(tài)。

 所以單例,static也要慎用??!

-------------------------------------------------------------------------------------

有時(shí)候越是這種見鬼的問題,越可能是我們對(duì)于一些概念并沒有真正的理解導(dǎo)致的。

  1. static

  2. 同步與異步

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


當(dāng)前名稱:關(guān)于靜態(tài)常量造成的那些見鬼的情況我不得感慨一下-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://weahome.cn/article/dodsoh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部