當前位置:首頁 » 安卓系統 » android開啟線程

android開啟線程

發布時間: 2025-01-04 03:51:46

A. Android中的線程和線程池

一、除了Thread外,扮演線程角色的還有:AsyncTask和IntentService,同時HandlerThread也扮演特殊的線程。

      IntentService:內部採用HandlerThread來執行,像一個後台線程,同時是一個服務,不容易被系統殺死。

二、HandlerThread的run方法是一個無限循環

三、IntentService中任務是排隊執行的

四、AsyncTask 

1、Android1.6之前串悄段桐行執行任務,1.6時候採用線程池裡的並行,Android3.0開始又開始串列(為了避免並發錯誤),單任可以並行。

2、AsyncTask必須在UI線程調用(不過這個不是絕對的,和版本有關燃腔系,API 16之前,API 16到 22, API 22以後) 參考一

原因:內部有靜態Handler,採用UI線程的Looper來處理消息,這就是為什麼AsyncTask必須在UI線程調用,因為子線程默認沒有Looper無法創建下面的Handler,程序會直接Crash

3、AsyncTask中有兩個線程池和一個Handler,一個線程池用啟坦於任務排隊,一個線程池用於真正的執行任務,InternalHandler用於將

執行環境從線程池切換到主線程

AsyncTask串列與並行

五、線程池

線程池中多餘的線程是如何回收的

B. android onactivityresult 裡面可以開線程嗎

在一個主界面(主Activity)上能連接往許多不同子功能模塊(子Activity上去),當子模塊的事情做完之後就回到主界面,或許還同時返回一些子模塊完成的數據交給主Activity處理。這樣的數據交流就要用到回調函數onActivityResult。

<1>startActivityForResult(Intent intent,
int requestCode);

第一個參數:一個Intent對象

第二個參數:如果> = 0,當Activity結束時requestCode將歸還在onActivityResult()中。以便確定返回的數據是從哪個Activity中返回

<2>onActivityResult(int requestCode, int resultCode, Intent data)

第一個參數:這個整數requestCode提供給onActivityResult,是以便確認返回的數據是從哪個Activity返回的。

這個requestCode和startActivityForResult中的requestCode相對應。

第二個參數:這整數resultCode是由子Activity通過其setResult()方法返回。

第三個參數:一個Intent對象,帶有返回的數據。

<3>setResult(int resultCode, Intent data)

調用這個方法把Activity想要返回的數據返回到父Activity

第一個參數:當Activity結束時resultCode將歸還在onActivityResult()中,一般為RESULT_CANCELED , RESULT_OK。

第二個參數:一個Intent對象,返回給父Activity的數據。

C. android在activity啟用線程,沒有出錯,調試過了,不執行run()方法,附上代碼。

我 直接給你上代碼了,你看看線程是怎麼用的,希望你自己學會他!
public void OnClick(){
MyThread t1=new MyThread();
t1,start();
}

class MyThread implements Runnable {
public void run() {
你的代碼

}
}

D. Android 如何創建子線程以及區分主線程

在一個Android 程序開始運行的時候,會單獨啟動一個Process。默認的情況下,所有這個程序中的Activity或者Service(Service和 Activity只是Android提供的Components中的兩種,除此之外還有Content Provider和Broadcast Receiver)都會跑在這個Process。
一個Android 程序默認情況下也只有一個Process,但一個Process下卻可以有許多個Thread。在這么多Thread當中,有一個Thread,我們稱之為UI Thread。UI Thread在Android程序運行的時候就被創建,是一個Process當中的主線程Main Thread,主要是負責控制UI界面的顯示、更新和控制項交互。在Android程序創建之初,一個Process呈現的是單線程模型,所有的任務都在一個線程中運行。因此,我們認為,UI Thread所執行的每一個函數,所花費的時間都應該是越短越好。而其他比較費時的工作(訪問網路,下載數據,查詢資料庫等),都應該交由子線程去執行,以免阻塞主線程。
那麼,UI Thread如何和其他Thread一起工作呢?常用方法是:
誕生一個主線程的Handler物件,當做Listener去讓子線程能將訊息Push到主線程的Message Quene里,以便觸發主線程的handlerMessage()函數,讓主線程知道子線程的狀態,並在主線程更新UI。

E. Android: 一個Activity開辟的線程,在這個Activity調用finish()的時候會強制關閉這個線程嗎

不會,你可以在onDestory中手動終止該線程

熱點內容
手機無線存儲器 發布:2025-09-14 14:18:24 瀏覽:975
將編程納入 發布:2025-09-14 14:08:20 瀏覽:400
android進度條使用 發布:2025-09-14 14:01:06 瀏覽:852
怎麼看伺服器哪些埠沒有被佔用 發布:2025-09-14 14:01:06 瀏覽:228
星際方塊伺服器家園世界如何禁足 發布:2025-09-14 14:00:52 瀏覽:344
我的世界如何創建一個有模組的伺服器 發布:2025-09-14 13:42:40 瀏覽:330
安防場景如何選擇伺服器 發布:2025-09-14 13:20:48 瀏覽:741
php數組獲取鍵 發布:2025-09-14 13:20:47 瀏覽:857
蘋果和安卓哪個適合跑滴滴 發布:2025-09-14 13:07:55 瀏覽:995
怎麼訪問wamp 發布:2025-09-14 12:26:55 瀏覽:822