最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android ListView出現(xiàn)異常解決辦法

 更新時間:2016年11月04日 14:31:30   投稿:lqh  
這篇文章主要介紹了Android ListView出現(xiàn)異常ListView:The content of the adapter has changed but ListView did not receive a notification解決辦法的相關(guān)資料,需要的朋友可以參考下

Android ListView 異常解決辦法:

ListView:The content of the adapter has changed but ListView did not receive a notification使用ListView時遇到如下的異常信息:

10-26 18:30:45.085: E/AndroidRuntime(7323): java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but only from the UI thread. [in ListView(2131296280, class android.widget.ListView) with Adapter(class com.souapp.appmanager.ApkListAdapter)]

 其實我在listview的adapter添加完數(shù)據(jù)后,使用了handler去調(diào)用datper.notifyDataSetChanged();來通知listview顯示變化結(jié)果;

雖然自己很確定沒有多線程操作,但是有人說listview本來就是線程不安全的,這個不關(guān)心了,看了國外一個開發(fā)者的方法很簡單。

解決方法1:

ListView.requestLayout(); 

Adatper.notifyDataSetChanged();

在你adpater更新前,調(diào)用listview的requestLayout(),這樣做無非就是彌補數(shù)據(jù)數(shù)量不一致導(dǎo)致報錯,雖然一個解決的好辦法。

 但是實際上用的時候我發(fā)現(xiàn)也會出問題,想了想最徹底的解決辦法

徹底解決方法:

把  listview的adapter數(shù)據(jù)更新和dapter.notifyDataSetChanged()方法的調(diào)用必須同時放到單獨一個線程里,報錯基本是都是這個原因,有人把adapter里的數(shù)據(jù)更新了,但是 dapter.notifyDataSetChanged() 放到一個單獨線程去更新,結(jié)果出現(xiàn)notifyDataSetChanged更新同步的問題

解決更新ListView數(shù)據(jù)時出現(xiàn)的問題分析總結(jié):

  沒仔細(xì)讀的話,一眼看去就說說在非UI線程去更新了ListVIew的數(shù)據(jù),然后下意識的認(rèn)為是調(diào)用adapter.notifyDataSetChanged方法的調(diào)用被放到了非UI線程,仔細(xì)一看是說更新ListView的數(shù)據(jù)以及通知數(shù)據(jù)更新要放到同一個線程(主線程),是為了保持?jǐn)?shù)據(jù)一致,adapter里面一般是會存放一個數(shù)組,對那個數(shù)據(jù)的修改和調(diào)用notifyDataSetChanged方法要放到一起,而且是放到主線程,如果對數(shù)據(jù)的更新放到了子線程,notifyDataSetChanged的調(diào)用在主線程,notifyDataSetChanged的調(diào)用會默認(rèn)把ListView綁定到主線程里面了,這個時候子線程來更新數(shù)據(jù)的話就會出現(xiàn)在非UI線程修改UI線程的東西了。

這個問題也不是必崩潰,低版本崩的多,高版本好像崩潰得少

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

最新評論

洛隆县| 苍南县| 万全县| 金寨县| 山丹县| 江源县| 武汉市| 米泉市| 南京市| 封开县| 柘城县| 和硕县| 阜平县| 鄱阳县| 韶关市| 萨嘎县| 古交市| 桦南县| 顺昌县| 万安县| 英德市| 满城县| 甘孜县| 乳山市| 肇源县| 扎鲁特旗| 奉贤区| 贡嘎县| 八宿县| 棋牌| 兰溪市| 莱西市| 陵水| 旺苍县| 龙南县| 江永县| 灵石县| 雷州市| 宁蒗| 孝感市| 曲松县|