您好,登錄后才能下訂單哦!
1 問(wèn)題: 登陸頁(yè)面 輸入時(shí)賬號(hào)時(shí) 彈出鍵盤覆蓋 密碼輸入框
期望:輸入能夠把輸入頁(yè)面頂上去。
解決方法:Activity設(shè)置成非全屏且:android:windowSoftInputMode = "adjustResize"
2 問(wèn)題:點(diǎn)擊EditText輸入兩次才彈出DatePickerDialog。
期望:點(diǎn)擊一次彈出DatePickerDialog
解決方法:EditText改為TextView即可。
3 問(wèn)題:The content of the adapter has changed but ListView did not receive a notification
期望:不出現(xiàn)該bug
思路: 在Android開(kāi)發(fā)過(guò)程中,使用了大量的ListView,發(fā)現(xiàn)這個(gè)錯(cuò)誤偶爾會(huì)出現(xiàn)。特別是做壓力測(cè)試的時(shí)候,不停的點(diǎn)擊刷新,更容易出現(xiàn)這個(gè)錯(cuò)誤。代碼中已經(jīng)使用了Adapter的notifyDataSetChanged()方法通知UI更新了,但是還是會(huì)出現(xiàn)這個(gè)錯(cuò)誤。究其根本原因,還是線程之間同步的問(wèn)題。比如,線程1更新了Adapter中的內(nèi)容,卻還沒(méi)有來(lái)得及通知內(nèi)容已經(jīng)更新,就又有線程2更新了Adapter中的內(nèi)容,這個(gè)時(shí)候如果線程1再通知內(nèi)容更新,就會(huì)出現(xiàn)上述異常了。
在此提出一些解決辦法:
對(duì)線程進(jìn)行管理,如果當(dāng)前Actitivty暫停了,及時(shí)停止這些線程。
數(shù)據(jù)更新后,要及時(shí)使用notifyDataSetChanged()方法通知UI,避免出現(xiàn)數(shù)據(jù)不一致的情況。
數(shù)據(jù)的更新,最好放在主線程中進(jìn)行。這樣可以使用同步數(shù)據(jù)更新與通知內(nèi)容更新部分的代碼。
最后補(bǔ)充一條我最終解決問(wèn)題的方法:
在用到多線程的時(shí)候,可以對(duì)數(shù)據(jù)做緩存處理, 比如與ListView綁定的數(shù)據(jù)存儲(chǔ)在ArrayList (dataList), 在線程中先將數(shù)據(jù)加入到臨時(shí)ArrayList(tmpList) , 最后在調(diào)用notifyDataSetChanged()方法通知UI更新之前, 把臨時(shí)ArrayList(tmpList)中的數(shù)據(jù)更新到ArrayList(dataList)中, 然后清空臨時(shí)ArrayList(tmpList)數(shù)據(jù)。
參考:http://blog.csdn.net/garybook/article/details/7498342
4 問(wèn)題:內(nèi)存泄露
思路:使用Memory Analyzer Tool(MAT)內(nèi)存分析工具進(jìn)行分析。
5 Jpush推送相關(guān)問(wèn)題:
1 關(guān)于不活躍用戶:長(zhǎng)期未打開(kāi)APP,則會(huì)被Jpush標(biāo)志為不活躍用戶,之后不再接收推送,(除非用戶主動(dòng)打開(kāi)APP,此句話待驗(yàn)證)
2 新建的APP,所有安裝用戶都是活躍用戶。
3 小米的手機(jī),普通App默認(rèn)是非自啟動(dòng),自啟動(dòng)廣播也被屏蔽。
6 EditText焦點(diǎn)鍵盤彈出問(wèn)題:
取消:
在EditText的父級(jí)控件中找一個(gè),設(shè)置成
android:focusable="true"
android:focusableInTouchMode="true"
獲?。?br />
7 在Eclipse添加Android兼容包( v4、v7 appcompat )
http://www.cnblogs.com/kissazi2/p/3644848.html
8 ScrollView 和Listview沖突的解決方案:
http://www.xuebuyuan.com/2191777.html
9 不同版本ADT混淆方式:
參考:http://www.tuicool.com/articles/amIn6vj
10 自動(dòng)開(kāi)關(guān)機(jī)實(shí)現(xiàn):
http://www.cnblogs.com/melaniedeng/archive/2012/02/16/2355066.html
11 FragmentStatePagerAdapter+viewpager第二次進(jìn)入該fragment不顯示數(shù)據(jù)
解決方法:
在含有ViewPager的Fragment的onCreateView方法中添加代碼:
if (view != null) {
ViewGroup parent = (ViewGroup) view.getParent();
if (parent != null) {
parent.removeView(view);
}
return view;
}
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。