第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

Android必學(xué)-異步加載

難度中級
時長 1小時57分
學(xué)習(xí)人數(shù)
綜合評分9.70
220人評價 查看評價
9.9 內(nèi)容實用
9.7 簡潔易懂
9.5 邏輯清晰
  • 1. 對于從網(wǎng)絡(luò)上獲取圖片這種需求,我們都要使用Cache來將我們的圖片緩存起來,尤其是對于ListVIew這種,不能每次我們滑動ListView就重新從網(wǎng)上下載圖片,這樣會很浪費資源而且浪費手機的流量。在Android中,已經(jīng)為我們提供了一個用于緩存的類LruCache。我們可以使用這個類來實現(xiàn)我們對于圖片資源的緩存。 2. LruCache是將圖片緩存在內(nèi)存中,而還有個第三方的類DiskLruCache來將圖片緩存到手機的Disk上,而我們大型的app,一般都是將LruCache和DiskLruCache結(jié)合起來使用,形成一個memory hierarchy。
    查看全部
    0 采集 收起 來源:LruCache緩存(上)

    2016-07-06

  • 什么是異步加載:就是用異步的方式去加載數(shù)據(jù) 使用異步加載的原因 1.android是單線程模型 2.耗時操作都必須放在單獨的線程中去做,而不能去阻塞UI線程 異步加載最常用的兩種方式 1.多線程\線程池 2.AsyncTask(底層也是基于線程池來實現(xiàn)的)
    查看全部
  • 刷新混亂的問題問題是由于快速滾動時,同一個位置的item可能被設(shè)置了多次圖片顯示。 而由于線程是異步的,導(dǎo)致后面會有多個線程在跑。 第一次測試的線程還沒有跑完,第二次的線程又開始了。 所以同一個位置會被設(shè)置多次圖片。 設(shè)置了tag之后,之后一次設(shè)置的tag會和item綁定。 所以第一次的線程跑完設(shè)置圖片的時候,tag已經(jīng)更新為新的url了,所以本次設(shè)置圖片就放棄了。
    查看全部
    0 采集 收起 來源:使用Thread

    2016-07-04

  • 在異步加載中,當(dāng)網(wǎng)絡(luò)環(huán)境不是很好情況下,ListView本身的緩沖機制可能會造成ListView的item顯示錯亂。 兩種方法可以避免這種問題: 1. 將當(dāng)前的item與原始數(shù)據(jù)綁定 例如上一筆記中,在Adapter的getView()方法中為每個ImageView設(shè)置一個url的tag String urlString = newsBean.imageUrl; viewHolder.imageView.setTag(urlString); 在主線程的Handler中真正加載進(jìn)行更新UI時,會判斷這個tag是否是對應(yīng)的。只有當(dāng)tag是正確時才會真正做設(shè)置item的操作 if(mImageView.getTag().equals(urlString)) mImageView.setImageBitmap((Bitmap) msg.obj); 2. 使用成員變量將對應(yīng)的數(shù)據(jù)進(jìn)行緩存,這種方式就相當(dāng)于BaseAdapter中使用ViewHolder是一樣的。
    查看全部
    0 采集 收起 來源:使用Thread

    2016-07-04

  • Bitmap-刷新ListView加載: 問題是解決:緩存的圖片對正確的圖片加載時的影響~ 問題描述:圖片在刷新顯示的時候會刷新更改多次,并不是一次到位加載正確圖片。 問題分析:ListView會重用convertView,每一個ImageView并沒有唯一的標(biāo)識,多個LIstView中Item的加載在緩沖池中產(chǎn)生多個ImageView,在沒有Tag的情況下,重用convertView就會導(dǎo)致新的圖片在加載之前先顯示舊的圖片,根本原因是ListView中特定的Item沒有顯示正確的URL資源 解決方案:方法1-設(shè)置Tag:在首次加載時就為ImageView的標(biāo)簽,標(biāo)簽為正確的URL(身份驗證信息):viewHolder.imageView.setTag(url),在handler中加載圖片時對標(biāo)簽進(jìn)行判斷,若符合,則加載。 方法2-設(shè)置成員變量:在showImageByThread中仿照ImageView的方式對URL進(jìn)行緩存,避免了網(wǎng)絡(luò)下載時間不確定導(dǎo)致的持續(xù)性的混亂
    查看全部
    0 采集 收起 來源:使用Thread

    2016-07-04

  • 抽象類 URLConnection 是所有表示應(yīng)用程序與 URL 之間通信鏈路的類的超類。該類的實例可以用來對由 URL 引用的資源進(jìn)行讀取和寫入操作,HttpURLConnection是支持 HTTP 特定功能的 URLConnection
    查看全部
  • inputStream in = new BufferedinputStream(conn.getInputStream()); inputStream是個抽象類,通過實例化子類獲取BufferedinputStream的對象。
    查看全部
  • 加載圖片的兩種方式:多線程;異步加載
    查看全部
  • 異步加載的第一層:通過AsyncTask訪問網(wǎng)絡(luò),獲取json或者XML字符串,然后解析他們產(chǎn)生若干object,將每個object放入到ListVIew中(adapter需要使用view holder pattern去寫),AsyncTask中的訪問網(wǎng)絡(luò)獲取json或者XML字符串,并且產(chǎn)生若干個object的工作就是在doInBackground()方法中進(jìn)行的,所以這個方法總的來說就是用來準(zhǔn)備數(shù)據(jù)源的。
    查看全部
    0 采集 收起 來源:邏輯梳理

    2016-07-03

  • 異步加載——實現(xiàn)ListView圖文混排邏輯總結(jié) 第一步 onCreate中new一個NewsAsyncTask 將url傳遞給getJsonData 實現(xiàn)異步訪問 第二步 getJsonData將url轉(zhuǎn)換為NewsBean對象 第三步 onPostExecute講NewsBean的數(shù)據(jù)傳遞給NewsAdapter 第四步 NewsAdapter構(gòu)造一個ListView數(shù)據(jù)源 并將數(shù)據(jù)源設(shè)置給ListView
    查看全部
    0 采集 收起 來源:邏輯梳理

    2016-07-03

  • 本節(jié)課目標(biāo):文藝方式重現(xiàn)BaseAdpter 1、自定義Adpter繼承BaseAdpter; 2、定義變量:List<NewsBean>;LayoutInflater; 3、重寫構(gòu)造函數(shù)NewsAdpter(Context context, List<NewsBean> data)。 4、文藝方式重寫getView()方法。 4.1、自定義類ViewHolder,映射相關(guān)的view對象
    查看全部
  • 3. 解析json數(shù)據(jù)到List<NewsBean>中 jsonobject=new JsonObject(jsonString); jsonArray=jsonobject.getjsonArray("data"); NewsBean newsBean; (如圖),通過如下for循環(huán)就可以將jsonString原始字符數(shù)據(jù)導(dǎo)入到每個NewsBean對象中。 for (int i = 0; i<jsonArray.length(); i++) { jsonObject = jsonArray.getJSONObject(i); newsBean = new NewsBean(); //從jsonObject中得到每個元素數(shù)據(jù)給newsBean newsBean.image = jsonObject.getString("picSmall"); newsBean.title = jsonObject.getString("name"); newsBean.content = jsonObject.getString("description"); newsBeanList.add(newsBean); } 最后通過newsBeanList.add(newsBean)組成一個List<NewsBean>對象,這是構(gòu)成Adapter適配器的原始數(shù)據(jù)。
    查看全部
  • 異步加載 1. 主線程中不能做耗時操作,只能更新UI 下面的例子 2. 獲取jsonData url = http://idcbgp.cn/api/teacher?type=4&num=30 下面的openStream參數(shù)是從URL參數(shù)中new URL(url).openStream()獲取的。 private String readStream(InputStream openStream) { InputStreamReader isr; String result = ""; try { String line = ""; //將InputStream類的字節(jié)流轉(zhuǎn)換成字符流 isr = new InputStreamReader(openStream, "utf-8"); //轉(zhuǎn)存在BufferedReader中 BufferedReader br = new BufferedReader(isr); while((line = br.readLine())!=null) { result+=line; } } return result; }
    查看全部
  • Message messages= new Message(); Message message=Message.obtain(); message.obj=bitmap; 一個始終創(chuàng)建新的對象、一個是只創(chuàng)建一個、一個用完返回一個新的對象、比較節(jié)省內(nèi)存
    查看全部
    0 采集 收起 來源:使用Thread

    2016-07-03

  • 一、如何通過Url獲取網(wǎng)絡(luò)反饋的Json字符串結(jié)果: 1、重寫doInBackground(Params…) 獲取請求的網(wǎng)址,調(diào)用自定義方法getJson(String url); 2、自定義方法getJson中定義URL,獲取inputStream流 3、自定義方法readStream(InputStream is),將inputStream流中的字節(jié)流拼裝成字符串; 4、自定義方法getJson調(diào)用readeStream()方法,并將InputStream流作為參數(shù)傳遞。這樣既可獲得json串結(jié)果。
    查看全部

舉報

0/150
提交
取消
課程須知
1、了解異步處理的一般方法 2、掌握如何使用多線程進(jìn)行異步加載 3、掌握如何使用ASyncTask進(jìn)行異步加載 4、異步加載的緩存與優(yōu)化
老師告訴你能學(xué)到什么?
本課程是Android中級課程 1、熟練掌握基本的Android應(yīng)用程序開發(fā)方法

微信掃碼,參與3人拼團(tuán)

微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復(fù)購買,感謝您對慕課網(wǎng)的支持!