Android中用AsyncTask簡單實現多執行緒

2021-08-25 09:52:00 字數 906 閱讀 9366

package cn.infogiga.starter;

import android.os.asynctask;

import android.util.log;

/** * @author chroya

* */

public class mythreads extends asynctask{

@override

protected integer doinbackground(integer... params) {

int p = 0; //計數

for(int index=0; indexmythreads繼承了asynctask,他有三個泛型引數,第乙個是任務執行所需要的引數型別,第二個是任務的進度表示型別,第三個是進度計算的結果型別。

我override了三個方法:

doinbackground:就是任務執行的主方法,它會被作為乙個執行緒執行。

onprogressupdate:進度更新的時候呼叫,進度什麼時候更新呢?就是呼叫了publishprogress方法之後就更新。

onpostexecute:在doinbackground執行並返回之後呼叫,因為他需要doinbackground的返回值做引數。

怎麼使用它呢?

new mythreads().execute(10, 20, 30);

沒錯,就這一句。

這一句傳遞了三個引數進去,傳遞給了

doinbackground,然後執行緒開始執行,將三個數開始逐一計數,雖然計數不用這麼麻煩,但是為了弄明白asynctask的執行機制,複雜點反而好。

結果列印出

onprogressupdate的

1到60,最後列印出了

onpostexecute的result:60.

Android開發中立即停止AsyncTask和

程式開發中經常會有立即停止執行緒執行的需要,而通過api是沒有辦法實現這個目的的,因此對於這個情況,我們需要採取一些 特殊 的方式來實現 1,判斷標誌位的辦法 2,合理的利用exception 從外部呼叫asynctask的cancel方法並不能停止乙個已經啟動的asynctask。這個cancel...

Android中用Shape實現圓角和區域性圓角

通過以上 設定成布局的background即可實現布局四個角均為圓角.一般情況下上面就可以滿足我們的需求,那麼如果我們不想它四個角都為圓角該怎麼辦?注 可能android studio 預覽效果還是4個圓角,但實際執行是滿足的,畢竟是官方文件給出的解決方案 對,沒錯,就是多了一行android ra...

Android中用到的幾大設計模式

1 模板模式 如activity,每次新建乙個activity時都會覆蓋oncreate onstart 方法等,這些方法在父類中就相當於乙個模板。2 觀察者模式 listener相當於乙個觀察者,對一些事件的響應都進項觀察,當發現有響應就進行相應的處理。3 單例模式 目的 希望物件只建立乙個例項,...