1、要實現非同步操作就要用到android提供乙個asynctask類,這個類是乙個泛型。下面附上我的**,我直接在**中說明
2、主介面activitypackage com.example.async2;
import android.os.asynctask;
import android.view.view;
import android.widget.progressbar;
import android.widget.textview;
/** * 1、繼承asynctask,其中e1,e2,e3分別是三個型別
* 2、必須要重寫的方法是doinbackground方法
* 3、第乙個型別對應doinbackground方法的引數型別
* 4、第二個型別對應於onprogressupdate方法的引數型別
* 5、第三個對應於onpostexecute方法的引數型別
* 6、在生成該類的物件來實現非同步操作的時候要呼叫execute方法
* 7、呼叫該方法之後首先執行的是onpreexecute方法,然後執行doinbackground方法,最後執行onpostexecute方法
* * @author why
* */
public class progressbarasynctask extends asynctask
/*** 改方法不執行在ui執行緒之中,所以在該方法中不能對ui中的控制項進行操作
* 執行一些耗時較長的方法
*/@override
protected string doinbackground(integer... params)
return i + "";
} /**
* 該方法執行在ui執行緒中實現對ui執行緒中的控制項的一些操作
*/@override
protected void onpreexecute()
/*** 該方法執行在ui執行緒中實現對ui執行緒中的控制項的一些操作
*/@override
protected void onpostexecute(string result)
/*** 1、該方法執行在ui執行緒中實現對ui執行緒中的控制項的一些操作
* 2、在doinbackground方法中每次呼叫publishprogress都會觸發這個方法的執行
*/@override
protected void onprogressupdate(integer... values)
}
3、netoperator模擬執行時間較長的一些操作package com.example.async2;
import android.os.bundle;
import android.view.view;
import android.view.view.onclicklistener;
import android.widget.button;
import android.widget.progressbar;
import android.widget.textview;
/** * 主介面,有textview,progressbar和button三個控制項
* @author why
* */
public class mainactivity extends activity
});}}
4、布局檔案,很簡單只有三個控制項。package com.example.async2;
/** *
* @author why
* */
public class netoperator catch (interruptedexception e)
}}
<?xml version="1.0" encoding="utf-8"?>
android執行緒及非同步操作
現在完成乙個計數任務,從1計到100,在textview中顯示進度。如果把這些迴圈加的操作放在oncreat 方法中,肯定會出現阻塞。利用asynctask類在後台進行操作,可以使主ui執行緒順暢進行下去。這個類裡主要涉及到3個方法,doinbackground onprogressupdate o...
android非同步處理系列
1 使用thread handler實現非ui執行緒更新ui介面 總結 在這種結構中thread處理耗時任務,完成後通過mhandler.sendmessage 傳送訊息給ui執行緒的handler,ui執行緒的handler執行handlemessage message msg 2 handler...
Android非同步任務 AsyncTask 筆記
像handler訊息傳遞機制類似,android官方提供的專門用於處理耗時超作,並及時更新ui元件的乙個抽象類.常用於耗時操作,如網路操作,資料庫操作,等大量的耗時操作.asynctask是個抽象類,這一屬性決定我們運用時要繼承該類,並實現該類中的方法.params 1.execute params...