国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > Android > 正文

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

2019-12-12 04:47:30
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Android ListView 異常解決辦法:

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

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)]

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

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

解決方法1:

ListView.requestLayout(); 

Adatper.notifyDataSetChanged();

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

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

徹底解決方法:

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

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

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

這個(gè)問(wèn)題也不是必崩潰,低版本崩的多,高版本好像崩潰得少

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宜州市| 西藏| 铁岭县| 西贡区| 阿克陶县| 西丰县| 武川县| 沽源县| 宣恩县| 霍州市| 眉山市| 阜新| 花莲市| 集安市| 凤阳县| 利辛县| 分宜县| 百色市| 祥云县| 灌云县| 德令哈市| 保德县| 札达县| 漳州市| 玉门市| 徐州市| 云浮市| 彰武县| 廉江市| 石景山区| 大丰市| 穆棱市| 江阴市| 高平市| 阳原县| 天门市| 阜城县| 湛江市| 自治县| 奉贤区| 平利县|