2012-10-15 109 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