运行线程时的Android刷新活动

时间:2011-11-10 11:57:51

标签: android multithreading user-interface

我的问题是:当我运行通过互联网下载某些数据的线程时,如何更新我的用户界面。如果我做这样的事情:

public void getCollectionsInfo(Context context){
    jsonColl = new JsonCollection();
    final Context acontext = context;

    new Thread(new Runnable() {
        public void run() {
           jsonColl.executeInsert(acontext);
        }}).start();

 }

如何在我显示通过jsonColl.executeInsert(acontext);收到的数据时刷新我的活动。

欢迎任何形式的帮助或建议! 提前谢谢!

2 个答案:

答案 0 :(得分:2)

答案如下。

public void getCollectionsInfo(Context context){
    jsonColl = new JsonCollection();
    final Context acontext = context;

    new Thread(new Runnable() {
        public void run() {
           jsonColl.executeInsert(acontext);
mHandlerUpdateUi.post(mUpdateUpdateUi);    

        }}).start();

 }

final Handler mHandlerUpdateUi= new Handler();

    final Runnable mUpdateUpdateUi = new Runnable() {
        public void run() {
        //update ui here

        }
    };

答案 1 :(得分:1)

刷新视图只需要调用invalidate()。有问题的UI元素是什么?

  • 如果是ListView,则在适配器上调用notifyDataSetChanged()
  • 如果是其他内容,请使用UI Handler mechanism