2012-10-15 34 views
0

這是我第一次製作一個相當大的應用程序,其中有很多部分。用戶界面和後臺線程之間的溝通

我想在不同的類中保留UI和後臺進程以避免混淆。但是,如何以最佳方式在他們之間進行溝通。我遇到一些方法至今:

  1. 聲明後臺線程在不同的類,並在UI線程定義其onPostExecute()方法。

    new SetupDefaultFeeds(context) { 
        @Override 
        protected void onPostExecute(List<Feed> result) { 
         default_feeds = result; 
    
         for (Feed t : result) { 
          String log = t.toString(); 
          Log.d("DEFAULT feed", log); 
         } 
         menu_btn[0].performClick(); 
        } 
    }.execute(); 
    
  2. 在背景和UI線程之間使用標誌變量的信令。

  3. 線程和處理函數。

有沒有其他方法,什麼是最好的方法。謝謝 !

回答

1

通過Handler傳遞消息通常是實現此目的最「安卓」的方式。試圖通過標誌變量進行所有溝通很可能會讓人頭疼。

編輯:Android本身並不提供讓您將兩個類連接在一起的方法,您需要手動完成。一種很好的方法是爲您的通信創建一個接口,並讓UI類或後臺線程實現它。然後,在創建類時,可以將引用傳遞給另一個對象並通過該接口進行通信。

但是,如果您想完全分離這兩個類,您可能需要改用BroadcastReceiver並使用它在UI和後臺線程之間發送消息。

+0

我知道如何做到這一點,當我們有後臺線程和用戶界面在同一類..但我不知道如何做到這一點,當後臺線程和用戶界面在不同的類。你可以幫助我的代碼! – gauravsapiens