JAVA파일에서 에러가납니다. 원래 의도했던건 이미지버튼 안의 글자가 깜박이면서 변하는 건데...

왜 오류가 나는건지 궁금합니다. 코드를 제가 잘 못짜는 초보인지라... 도움 부탁드립니다.

XML파일-------------(에러없음)------------------------------------------------
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 >
 <ImageButton android:id="@+id/progress"
  style="?android:attr/progressBarStyleHorizontal"
  android:layout_width="fill_parent"
  android:layout_height="wrap_content" />
</LinearLayout>



JAVA파일--------------------(에러발생)-----------------------------------------

package com.commonsware.android.threads;

import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.ImageButton;
import android.widget.ProgressBar;
import java.util.concurrent.atomic.AtomicBoolean;

public class HandlerDemo extends Activity {
 ImageButton bar;
 Handler handler=new Handler() {
  @Override
  public void handleMessage(Message msg) {}
 };
 AtomicBoolean isRunning=new AtomicBoolean(false);
 
 @Override
 public void onCreate(Bundle icicle) {
  super.onCreate(icicle);
  setContentView(R.layout.main);
  bar=(ImageButton)findViewById(R.id.progress);
 }
 //---------------------------------------------------------------- 이 아랫부분이 에러나는듯...
 public void onStart() {
  super.onStart();
  bar.setImageButton("시작");
  
  Thread background=new Thread(new Runnable() {
   public void run() {
    try {
   handler.sendMessage(handler.obtainMessage("한국"));
   handler.sendMessage(handler.obtainMessage("미국"));
   handler.sendMessage(handler.obtainMessage("중국"));
   handler.sendMessage(handler.obtainMessage("영국"));
     }
    }
    catch (Throwable t) {
    
    }
   }
  });
  
  isRunning.set(true);
  background.start();
 }
 
 public void onStop() {
  super.onStop();
  isRunning.set(false);
 }
}

왜 안되는건지.. 궁금합니다.