2012-01-14 100 views
0

我在主要活動中使用timertask以便每X秒重複更新一些數據。android:時間任務和服務有什麼區別?

這個數據是靜態的形式,所以這是一個公共靜態方法

這是一個壞的技術?我的意思是,使用這樣的靜態方法

我知道有這個叫做Service的東西,但是並沒有太多的例子在線說明如何使用它來更新每X秒一個變量,然後應該被某些變量訪問活動

所以我的問題是,使用計時器任務和服務之間有什麼區別?是一個時間任務只是一個時間計數器,沒有其他的東西?如果與處理程序一起使用,它是否並行運行?如果你有這樣的事情會發生什麼:

 handler = new Handler(); 
    t = new Timer(); 
    task = new TimerTask() { 
     public void run() { 

      handler.post(new Runnable() { 
       public void run() { 

             //do stuff; 

       } 
      }); 

     } 

    }; 
    t.schedule(task, 0, 10000); 

這段代碼究竟是如何工作的?它有什麼作用?它是否並行運行?爲什麼即使我離開這個代碼首先被調用的活動,它仍然運行?在這種情況下運行的是什麼?

由於事先

回答

2

TimerTask是標準Java的一部分,並且可以是使用用於延遲或重複執行一些片(可運行)的代碼。它的用途是discouraged on Android。您可以改用Handler。

服務可以用作Android應用程序的獨立且無UI的部分。它可以運行並創建它自己的線程,例如可以通過AlarmManager爲UI或Intent啓動。

它想你想要的是一個服務,它創建它自己的線程並做一些工作。當工作完成後,當垃圾收集器啓動時,內存將在Android上釋放,這是你無法控制的,這是一件好事。

+0

完美答案。 – 2015-11-02 06:49:44

相關問題