从线程中改变ui

时间:2015-01-29 23:01:43

标签: android

我知道有类似的问题,但我的问题略有不同 我有这样的代码

 Thread t = new Thread(){
        public void run(){
            while(!running) {
                if(gpstracker.canGetLocation()) {
                    double lon = gpstracker.getLongitude();
                    double lat = gpstracker.getLatitude();
                    now = new LatLng(lat,lon);
                    if(change(now)==1)
                        running = true;
                    else
                        ;
                }
                else {
                    gpstracker.showSettingsAlert();
                }
            }
        }
    };

change(now)我正在变换ui所以我的问题是如何从我的线程中更改UI?我已经阅读了关于处理程序od异步任务但我不认为他们在这种情况下是好的,或者我可能不知道如何使用它们,任何建议?

2 个答案:

答案 0 :(得分:5)

现在你可以做的改变

new Handler(Looper.getMainLooper()).post(new Runnable() {

    @Override
    public void run() {
    // your ui code here

    }
});

答案 1 :(得分:1)

您可以使用此活动方法:

YourActivity.this.runOnUiThread(new Runnable() {
  @Override
  public void run(){ 
      //Your awesome code here

  }
});