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