日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
解析Android中線程的好處

一、Android有兩種方式處理線程:

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設,梅江企業(yè)網(wǎng)站建設,梅江品牌網(wǎng)站建設,網(wǎng)站定制,梅江網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,梅江網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

比較耗時的操作放在后臺服務,通過通知機制通知用戶使用的活動(activity);在后臺線程中處理耗時的操作

二、使用Handler

創(chuàng)建后臺線程最友好的辦法是創(chuàng)建一個Handler子類的實例。只需一個Handler對應一個Activity。自定義的后臺線程可與Handler通信,Handler將與UI線程一起工作。和Handler通信,需要兩個選項,message和runnable對象。

三、Message 

發(fā)送Message到Handler,第一步調用obtainMessage(),從池中得到Message對象。

然后,可通過消息隊列將Message發(fā)送給Handler,通過sendMessage…()方法族:

sendMessage() 立即發(fā)送Message到消息隊列

sendMessageAtFrontOfQueue() 立即發(fā)送Message到隊列,而且是放在隊列的最前面

sendMessageAtTime() 設置時間,發(fā)送Message到隊列

sendMessageDelayed() 在延時若干毫秒后,發(fā)送Message到隊列

為了處理Message,Handler需要實現(xiàn)handleMessage(),當Message出現(xiàn)在隊列中時,會調用handleMessage()方法。另外,Handler可在需要時更新UI。

以下示例演示一個進度條,每隔1秒鐘增加1/20個單位。效果圖:

java代碼:

 
 
 
 
  1.  
  2. android:orientation="vertical"   
  3. android:layout_width="fill_parent" 
  4. android:layout_height="fill_parent"> 
  5. android:id="@+id/progress" 
  6. style="?android:attr/progressBarStyleHorizontal"   
  7. android:layout_width="fill_parent" 
  8. android:layout_height="wrap_content" /> 
  9.  

java代碼:

 
 
 
 
  1. package eoe.demo;  
  2. import android.app.Activity;  
  3. import android.os.Bundle;  
  4. import android.os.Handler;  
  5. import android.os.Message;  
  6. import android.widget.ProgressBar;  
  7. public class ShowThread extends Activity {  
  8. ProgressBar bar;  
  9. Handler handler = new Handler() {  
  10. @Override  
  11. public void handleMessage(Message msg) {  
  12. bar.incrementProgressBy(5);  
  13. }  
  14. };  
  15. boolean isRunning = false;  
  16. /** Called when the activity is first created. */  
  17. @Override  
  18. public void onCreate(Bundle savedInstanceState) {  
  19. super.onCreate(savedInstanceState);  
  20. setContentView(R.layout.main);  
  21. bar = (ProgressBar) findViewById(R.id.progress);  
  22. }  
  23. @Override  
  24. protected void onStart() {  
  25. super.onStart();  
  26. bar.setProgress(0);  
  27. Thread background = new Thread(new Runnable() {  
  28. @Override  
  29. public void run() {  
  30. for (int i = 0; i < 20 && isRunning; i++) {  
  31. try {  
  32. Thread.sleep(1000);  
  33. } catch (InterruptedException e) {  
  34. }  
  35. handler.sendMessage(handler.obtainMessage());  
  36. }  
  37. }  
  38. });  
  39. isRunning = true;  
  40. background.start();  
  41. }  
  42. @Override  
  43. protected void onStop() {  
  44. super.onStop();  
  45. isRunning = false;  
  46. }  

小結:

當?shù)谝淮螁右粋€android程序是,android會自動創(chuàng)建一個稱為“main”主線程的線程。這個線程很重要,因為它負責吧時間分派到相應對控件,其中就包括屏幕繪圖時間,它同樣是用戶與android控件交互的線程。

【編輯推薦】

Android 計時器Timer用法

Android智能手機操作系統(tǒng)

常用的Android指令和模擬器參數(shù)

用C#實現(xiàn)HTTP協(xié)議下的多線程文件傳輸

SQL點滴之收集SQL Server線程等待信息


本文標題:解析Android中線程的好處
轉載來源:http://www.dlmjj.cn/article/djcgipi.html