編輯:高級開發
首先我們需要明白,主線程或者這裡說的原始線程original thread 一般情況下是UI線程,當然UI線程並不一定是主線程,我們不能長時間的阻塞該應用,在Android平台上可能會產生類似Force close或Wait這樣的對話框這裡我們成為ANR,這裡除了使用ProgressDialog方式給用一個動態的進度代表當前處理並沒有中斷可能需要一些時間,所以android123告訴大家相關的網絡處理可以使用工作者線程,但是worker 線程不能處理顯示元素即UI相關的VIEw或Widget包中的高層的控件,所以通過一個Handler對象可以很好的傳遞Runnable或Message ,下面我們用一個簡單的例子來描述
final Handler cwjHandler = new Handler();
final Runnable mUpdateResults = new Runnable() {
public void run() {
updateUI();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
NetworkOperation();//一個很費時間的I/O操作,比如網絡或文件讀寫等等。
}
protected void NetworkOperation() {
Thread t = new Thread() {
public void run() {
DOSomething(); //處理得到結果了,這裡一些內容保存在主類的成員變量中
cwjHandler.post(mUpdateResults); //高速UI線程可以更新結果了
}
};
t.start();
}
private void updateUI() {
//詳細的更新
}
有關Java以及android的線程,我們將在以後的內容中介紹到,本次由於[email protected] 郵箱中的相關內容講到這些,以後我們會告訴大家一些線程同步以及死鎖問題的解決方法,總體而言感覺相對於Windows Mobile平台,Android上的線程消耗過大,而SymBian的活動對象又相對保守,總的而言android線程相對簡單。
Dalvik虛擬機依賴於Linux的一些功能,比如線程機制和底層內存管理機制, Linux 內核也同時作為硬件和軟件堆棧之間的硬件抽象層,下面詳細說明下什麼是andro
Google的android 2.1之前曾經歷過跳票的痛苦,但現在的發布正好迎合了Nexus One的發展。看來谷歌繼續對抗蘋果的iPhone的戰爭,才剛剛開始。And
移動開發風起雲湧,許多移動開發人員賺到了第一桶金,51CTO曾經報道過一篇對“月入40萬的iPhone中文應用程序開發者”的訪談,本文是一篇android開發者自曬收入
Google已經發布了android SDK 2.3版本,大家應該都在等android 2.3的升級吧?在51CTO獨家公布了android SDK 2.3下載地址後.