Android面試整理

  1. RecyclerView的上拉加載、下拉刷新怎么實現(xiàn)?RecyclerView原生實現(xiàn)側(cè)滑禽笑、拖動?
  • 上拉加載蛤奥、下拉刷新
    總結(jié):上拉加載更多功能實際上就是給RecyclerView增加一個FooterView佳镜,然后通過判斷是否滑動到了最后一條Item,來控制FooterView的顯示和隱藏凡桥。下載刷新同理蟀伸。
  • 側(cè)滑和拖動:拖拽和側(cè)滑刪除的功能要借助ItemTouchHelper這個類,我們只需要創(chuàng)建出一個ItemTouchHelper對象,然后調(diào)用mItemTouchHelper.attachToRecyclerView(recyclerView);就可以了啊掏。
    我們看一下ItemTouchHelper的構(gòu)造方法蠢络,他需要一個Callback
    public ItemTouchHelper(Callback callback) {
        mCallback = callback;
    }

這個Callback是ItemTouchHelper的內(nèi)部類,所以我們需要寫一個類繼承自ItemTouchHelper.Callback 迟蜜,然后重寫里面的方法

  1. 數(shù)據(jù)的各種存儲方式
    (1)SharedPreferences刹孔。適用于保存少量的數(shù)據(jù),且這些數(shù)據(jù)的格式非常簡單:字符串型娜睛、基本類型的值髓霞。比如應用程序的各種配置信息、解鎖口令密碼等畦戒。
    (2)文件存儲數(shù)據(jù) 方库。文件存儲方式是一種較常用的方法,在 Android 中讀取/寫入文件的方法障斋,與 Java 中實現(xiàn) I/O 的程序是完全一樣的纵潦,提供了 openFileInput()和openFileOutput()方法來讀取設備上的文件。
    (3)SQLite數(shù)據(jù)庫存儲數(shù)據(jù)垃环。SQLite 是 Android 所帶的一個標準的數(shù)據(jù)庫邀层,它支持SQL 語句,它是一個輕量級的嵌入式數(shù)據(jù)庫遂庄。
    (4)使用ContentProvider存儲數(shù)據(jù)被济。主要用于應用程序之間進行數(shù)據(jù)交換,從而能夠讓其他的應用保存或讀取此 Content Provider 的各種數(shù)據(jù)類型涧团。
    (5)網(wǎng)絡存儲數(shù)據(jù)。通過網(wǎng)絡上提供給我們的存儲空間來上傳(存儲)和下載(獲取)我們存儲在網(wǎng)絡空間中的數(shù)據(jù)信息经磅。
  2. 斷點續(xù)傳下載泌绣,續(xù)傳上傳
    多線程下載的原理實際上與單線程下載的原理并無區(qū)別。
  • 首先预厌,多線程下載只需要確定好下載一個文件需要多少個線程阿迈,一般來說最好為3條線程,因為線程過多會占用系統(tǒng)資源轧叽,而且線程間的相互競爭也會導致下載變慢苗沧。
  • 然后,下載的時候?qū)⑽募指顬槿荩僭O用3條線程下載)下載炭晒。創(chuàng)建與下載文件同樣大小的空殼文件RandomAccessFile待逞,它的開始結(jié)束為止用以下代碼conn.setRequestProperty("Range", "bytes=" + start + "-" + end)確定。
  • 最后就是斷點續(xù)傳了网严,只需要才程序停止下載的時候記錄下最后的下載位置就好了识樱,當下次下載的時候從當前停止的位置開始下載。
  1. app在斷網(wǎng)情況下怎么保存用戶信息(數(shù)據(jù)緩存)
    Android客戶端緩存機制是android應用開發(fā)中非常重要的一項工作了,使用緩存機制不僅可以為客戶節(jié)省流量怜庸,同時提高了用戶體驗当犯。分為文字緩存和多媒體文件緩存。
    首先是文字緩存:將服務器交互得到的json數(shù)據(jù)存入sd卡中割疾,并在數(shù)據(jù)庫添加該數(shù)據(jù)的記錄嚎卫。添加數(shù)據(jù)庫記錄時,可以提供2個字段宏榕,請求到的Url和本地保存后的文件地址拓诸,每次加載數(shù)據(jù)之前都會根據(jù)Url在數(shù)據(jù)庫中檢索。
    然后是媒體文件緩存:主要是圖片三級緩存担扑,現(xiàn)在流行的圖片加載框架都支持三級緩存恰响。如果是自己實現(xiàn)三級緩存,主要 用到的Lrucache涌献。

  2. Activity現(xiàn)場保存胚宦,現(xiàn)場恢復

  • 現(xiàn)場保存:重寫onSaveInstanceState()方法,在此方法中保存需要保存的數(shù)據(jù)燕垃,該方法將會在activity被回收之前調(diào)用枢劝。
  • 現(xiàn)場恢復:通過重寫 onRestoreInstanceState()方法可以從中提取保存好的數(shù)據(jù)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市卜壕,隨后出現(xiàn)的幾起案子您旁,更是在濱河造成了極大的恐慌,老刑警劉巖轴捎,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鹤盒,死亡現(xiàn)場離奇詭異,居然都是意外死亡侦副,警方通過查閱死者的電腦和手機侦锯,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來秦驯,“玉大人尺碰,你說我怎么就攤上這事∫氚” “怎么了亲桥?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵,是天一觀的道長固耘。 經(jīng)常有香客問我题篷,道長,這世上最難降的妖魔是什么厅目? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任悼凑,我火速辦了婚禮偿枕,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘户辫。我一直安慰自己渐夸,他們只是感情好,可當我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布渔欢。 她就那樣靜靜地躺著墓塌,像睡著了一般。 火紅的嫁衣襯著肌膚如雪奥额。 梳的紋絲不亂的頭發(fā)上苫幢,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天,我揣著相機與錄音垫挨,去河邊找鬼韩肝。 笑死,一個胖子當著我的面吹牛九榔,可吹牛的內(nèi)容都是我干的哀峻。 我是一名探鬼主播,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼哲泊,長吁一口氣:“原來是場噩夢啊……” “哼剩蟀!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起切威,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤育特,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后先朦,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缰冤,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年喳魏,在試婚紗的時候發(fā)現(xiàn)自己被綠了棉浸。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡截酷,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出乾戏,到底是詐尸還是另有隱情迂苛,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布鼓择,位于F島的核電站三幻,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏呐能。R本人自食惡果不足惜念搬,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一抑堡、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧朗徊,春花似錦首妖、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至温亲,卻和暖如春棚壁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背栈虚。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工袖外, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人魂务。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓曼验,卻偏偏與公主長得像,于是被迫代替她去往敵國和親头镊。 傳聞我的和親對象是個殘疾皇子蚣驼,可洞房花燭夜當晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 一、java部分 String相艇、StringBuffer與StringBuilder之間區(qū)別http://www....
    挨踢小能手閱讀 664評論 0 24
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,090評論 1 32
  • 1.Android系統(tǒng)的架構(gòu) Android采用層次化系統(tǒng)架構(gòu)颖杏,官方公布的標準架構(gòu)如下圖所示。Android由底層...
    大棄閱讀 1,660評論 0 11
  • 一坛芽、簡歷準備 1留储、個人技能 (1)自定義控件、UI設計咙轩、常用動畫特效 自定義控件 ①為什么要自定義控件获讳? Andr...
    lucas777閱讀 5,190評論 2 54
  • 對于這個來自西方的節(jié)日,老土的竟沒怎么太在意過活喊。重點來了……今年的這個愚人節(jié)因為參加了 ‘好報’的一月寫字小組...
    燦爛陽光下閱讀 116評論 0 0