ANR,多執行緒,Handler,非同步載入

2021-07-06 03:39:07 字數 2442 閱讀 5166

1.作業系統:實時作業系統,分時作業系統(可以併發做多個任務)。從微觀的角度看,作業系統還是實時的,cpu一次只能處理一件事情。但是因為cpu的執行速度是很快的。

2.什麼是程序?

——(作業系統)為每乙個任務分配一系列的資源(如cpu,記憶體等)來執行該任務,這就是程序。

3.什麼是執行緒?

——cpu執行的最小的**段

4.程序與執行緒的關係?

——程序是炒菜,執行緒是炒菜的每乙個步驟。程序中包含很多執行緒。

乙個handler允許你發message和runnable物件。每個handler例項都會關聯乙個單執行緒和執行緒訊息佇列,當你建立乙個新的hanlder,它就被繫結到當前所在的執行緒——從那時起,它將提供訊息和runnable物件,當訊息或runnable從訊息佇列裡面被取出的時候,就會被執行。

乙個handler有兩個主要用途:

1)執行排程訊息和將要被執行的runnable

2)執行在某個執行緒上,共享執行緒的訊息佇列

public

class

myasynctask

extends

asynctask

}

android:id="@+id/tv_progress"

android:text="@string/hello_world"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:textsize="24sp"/>

id="@+id/pb"

android:layout_width="match_parent"

android:layout_height="wrap_content"

style="@android:style/widget.progressbar.horizontal"/>

id="@+id/btn_download"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textsize="20sp"/>

id="@+id/iv_image"

android:layout_width="match_parentm"

android:layout_height="match_parent"

android:scaletype="center"/>

myasynctask myasynctask = new myasynctask();

myasynctask.execute(url);

@override

protected bitmap doinbackground(string... params)

} catch (exception e)

return bitmap;

}

6.在onpostexecute(bitmap bitmap)方法中把非同步任務處理的結果()設定到imageview上。

@override

protected

void

onpostexecute(bitmap bitmap)

7.記得加許可權。

android:name="android.permission.internet"/>

android:name="android.permission.write_external_storage"/>

string filename =imageurl.substring(imageurl.lastindexof("/"

)+1);

fileoutputstream fileoutputstream = new fileoutputstream(sd_card_path+"/"+filename);

intlen =0;

byte buffer = new

byte

[1024];

while ((len = inputstream.read(buffer))!=-1)

fileoutputstream.close();

inputstream.close();

bitmap=bitmapfactory.decodefile(sd_card_path+"/"+filename);

然後,我們在onprogressupdate方法裡面把載入進度text設上。

@override

protected

void

onprogressupdate(integer... values)

大功告成。

Handler多執行緒一

例子 public class handleractivity extends activity b2.setonclicklistener new onclicklistener handler handler new handler 該方法的內部類將在handler.sendmessage ms...

Android 多執行緒之Handler

前言 android的訊息傳遞機制是另外一種形式的 事件處理 這種機制主要是為了解決android應用中多執行緒的問題 在android中不允許activity新啟動的執行緒訪問該activity裡的ui元件,handler handler,它直接繼承自object,乙個handler允許傳送和處理...

Android多執行緒 Handler的簡單使用

我們先來總結下使用handler的步驟 建立hanlder物件,並在handlemessage方法中完成邏輯 建立子執行緒,在子執行緒中建立message物件,使用handler.post方法將訊息傳送給訊息佇列 messagequeue handler收到訊息,並呼叫handlemessage方法...