2012-10-18 75 views
1

我有黑莓的invokeLater的方法中的一個線程,如:線程內的invokeLater在黑莓

startButton.setChangeListener(new FieldChangeListener() { 
public void fieldChanged(Field arg0, int arg1) { 
    UiApplication.getUiApplication().invokeLater(new Runnable() { 
     public void run() { 
      Thread thread = new Thread(){ 
       public void run() { 
        uploadFile(); 
       } 
      }; 
      thread.start(); 
     } 
    }); 
} 

我有一個線程,因爲我想在後臺運行該功能,並希望能夠做其他的東西而它的工作。我想知道的是,如果這是一個好方法。在這種情況下,我真的需要invokeLater嗎?

回答

2

簡答:沒有。

龍答:

的invokeLater提出了Runnable在事件隊列,這樣,假以時日,事件循環看到了Runnable何時會執行它在事件線程。由於您在FieldChangeListener的fieldChanged方法中調用invokeLater,因此您正在從事件線程調用它。除非你想要做的是延遲你的線程開始到某些未知的時間,否則你不需要使用invokeLater。