2011-08-01 34 views
2

Multithreading on Android由於我們提供了各種可能性,在某種程度上是一項簡單的任務。關於Android平臺上的多線程問題

但是,理解這些方法之間的區別將會很好。

什麼是多任務的最佳方式,並根據什麼樣的偏好是「最好的」?

  1. AsyncTask

    class MultiTasker extends AsyncTask<, , > 
    
  2. Runnable

    Runnable myRun = new Runnable(){ 
        public void run(){ 
    
        } 
    }; 
    Thread T = new Thread(myRun); 
    T.start(); 
    
  3. Handler

    class MultiTasker extends Handler 
    

回答

3

問哪一個是總是更好的「最佳」是錯誤的方法在這裏 - 這取決於你想要完成什麼。

  1. Runnable接口/線程 - 這是基本的,最低級的方式在Java中控制線程。在Java API中提供,因此它們不是特定於Android的。您可以使用這些在Android程序中使用這些程序,但您可能想要爲大多數任務使用其他兩個選項之一(或者使用另外Thread s)。
  2. 處理程序 - 在Android API中提供。您可以直接post() a RunnablesendMessage() a Message(以及其他選項,例如在處理RunnableMessage之前提供延遲)。然而,Handler不是你自己會用來提供多線程的東西 - 它的用途通常是將返回到主要活動(UI)線程中。您需要在後臺啓動另一個Thread進程,並且在需要更新UI時使用post a Runnable使用Handler。或者,如果您有一項任務不一定需要在後臺運行,但確實需要彈出並每隔一段時間執行一些操作,則可以延遲以後激活post a Runnable,然後在post本身結束再次拖延。
  3. AsyncTask - 在Android API中提供。該類用於在後臺線程上執行某些操作,可選地在UI線程上提供增量更新,並最終在UI線程上提供最終結果。通用類型Params,ProgressResult分別用於提供啓動參數,進度更新數據和最終結果數據。在內部,AsyncTask使用Thread s,Runnable s和Handlers來完成此任務。
1

它,如果你去與AsyncTask() ..因爲那東西已經建成解決安卓MultiThreading問題..