問題1.每個View都需要對應一個Presenter,導致類太多解決策略1:抽取基類BaseView和BasePresenter,相同功能的presenter實現(xiàn)代碼復用挺身。同...

問題1.每個View都需要對應一個Presenter,導致類太多解決策略1:抽取基類BaseView和BasePresenter,相同功能的presenter實現(xiàn)代碼復用挺身。同...
AsyncTask使用 AsyncTask是一個抽象類孙咪,使用時需要創(chuàng)建子類繼承。其類聲明如下:public abstract class AsyncTask 繼承時需要指定三...
我們知道ListView通過復用機制使得在使用時不會引起OOM的出現(xiàn)纵搁,那么ListView的復用機制到底是如何實現(xiàn)的呢?首先要講到ListView的核心類RecycleBin...
同步和異步的區(qū)別:A調用B方法,如果B是同步的,需要等到B執(zhí)行結束之后再返回通知A;而如果B是異步的耸别,B立刻返回,等B執(zhí)行結束之后再通過回調通知A县钥。阻塞和非阻塞的區(qū)別:A調用...
View的繪制流程概述 Window的創(chuàng)建:Activity啟動時最終會調用ActivityThread.performLaunchActivity來完成啟動若贮,這個方法會通過...
LinkedHashMap是HashMap的子類省有,在擁有HashMap功能之外可以保存元素插入順序,使得元素遍歷順序與元素插入順序相同谴麦。同時LinkedHashMap還可以根...
1.輸入流和輸出流的方向是相對于內存來說的蠢沿,從文件/網(wǎng)絡等到內存方向的流稱為輸入流,反之為輸出流匾效。2.I/O流根據(jù)流的類型可以分為字符流和字節(jié)流舷蟀。字節(jié)流都是繼承inputSt...
安卓中Binder機制是一種跨進程通信的方式,在日常應用開發(fā)中四大組件底層通信機制弧轧、Activity傳遞對象以及AIDL的使用等雪侥,都涉及到Binder機制。既然Binder是...
在onCreate中創(chuàng)建了一個HandlerThread和Handler.因此和Service處理耗時操作需要另外新建Thread不同精绎,IntentService內置Hand...
最近在閱讀HanlerThread源碼時在getLooper中有wait函數(shù)速缨,在run中用到了notifyall函數(shù)。于是就思考這兩個函數(shù)的作用是什么代乃?為什么需要在這里添加這...
HashMap工作原理概述 HashMap其實也是一個數(shù)組旬牲,只不過每個元素存儲的是每個鏈表的頭結點。每個鏈表中每個元素是一個鍵值對Entry<K,V> 搁吓,每個鏈表中每個元素的...
以下堆棧信息日志是常見的illegalStateExecption日志原茅。筆者是當應用出于后臺時,網(wǎng)絡響應更新fragment時出現(xiàn)以下問題堕仔。本文將對該異常拋出的的時間和原因進...
Handler的使用 通常在開發(fā)過程需要在子線程中進行耗時的I/O操作(例如讀取文件或者連接網(wǎng)絡)擂橘,然后操作成功之后會對ui作相應的更新,但是安卓要求UI更新只能在主線程中進...
下面通過一段代碼來引入反射機制的作用摩骨。 以上代碼看似很好的解決需要執(zhí)行不同方法的問題通贞,需要哪個方法只要修改new類型那行代碼就可以了。但是這樣需要將程序停下了修改恼五,并且重新編...
緩存不一致問題 在單CPU的時代里昌罩,隨著CPU性能的不斷提升,cpu的處理速度遠超過cpu訪問內存的速度灾馒,使得cpu必須等待IO完成茎用,極大的浪費了CPU的性能。因此緩存技術誕...
問題場景: 項目中遇到一個問題:從FragmentA切換到FragmentB之后再返回到FragmentA時旭斥,出現(xiàn)FragmentA的一個成員變量mPresenter為空指針...
安卓開發(fā)中需要圖片資源的名稱必須是英文字母小寫,然而客戶給的圖片資源的名稱全是大寫字母夯辖。一共有幾千張圖片琉预,如果一個一個手動去修改效率太低了董饰。作為一個程序員怎么可以容忍如此低效...
重疊view事件響應問題 工作當中遇到一個需求:有兩個重疊并且全屏的Framelayout蒿褂,交互邏輯是點擊上層的button使得上層消失,下層可見卒暂;再點擊下層使得下層消失上層...