post : post는 Runnable이 메시지 대기열에 추가되도록합니다.
Runnable : 실행할 수있는 명령을 나타냅니다. 종종 다른 스레드에서 코드를 실행하는 데 사용됩니다.
run () : 클래스 코드의 활성 부분 실행을 시작합니다. 이 메서드는 Runnable을 구현하는 클래스로 생성 된 스레드가 시작될 때 호출됩니다.
getView().post(new Runnable() {
@Override
public void run() {
getView().startAnimation(a);
}
});
코드 :getView().startAnimation(a);
귀하의 코드에서
post는 Runnable ( 코드 가 다른 스레드에서 실행 됨)이 메시지 큐를 추가하도록합니다.
따라서 startAnimation은 messageQueue 에서 가져올 때 새 스레드에서 시작됩니다.
[편집 1]
UI 스레드 (메인 스레드) 대신 새 스레드를 사용하는 이유는 무엇입니까?
UI 스레드 :
응용 프로그램이 시작되면 Ui Thread가 자동으로 생성됩니다.
적절한 위젯에 이벤트를 전달하는 역할을하며 여기에는 그리기 이벤트가 포함됩니다.
Android 위젯과 상호 작용하는 스레드이기도합니다.
예를 들어 화면에서 a 버튼을 터치하면 UI 스레드가 터치 이벤트를 위젯에 전달하고이 위젯은 누른 상태를 설정하고 이벤트 대기열에 무효화 요청을 게시합니다. UI 스레드는 요청을 대기열에서 빼고 자신을 다시 그리도록 위젯에 알립니다.
사용자가 longOperation을 수행하는 버튼을 누르면 어떻게됩니까?
((Button)findViewById(R.id.Button1)).setOnClickListener(
new OnClickListener() {
@Override
public void onClick(View v) {
final Bitmap b = loadImageFromNetwork();
mImageView.setImageBitmap(b);
}
});
UI가 멈 춥니 다. 프로그램이 충돌 할 수도 있습니다.
public void onClick(View v) {
new Thread(new Runnable() {
public void run() {
final Bitmap b = loadImageFromNetwork();
mImageView.setImageBitmap(b);
}
}).start();
}
작업자 스레드에서 직접 UI를 업데이트하지 않는 Android 규칙을 위반합니다.
Android는 다른 스레드에서 UI 스레드에 액세스하는 여러 방법을 제공합니다.
- Activity.runOnUiThread (실행 가능)
- View.post (실행 가능)
- View.postDelayed (실행 가능, long)
- 매니저
아래와 같이
View.post (실행 가능)
public void onClick(View v) {
new Thread(new Runnable() {
public void run() {
final Bitmap b = loadImageFromNetwork();
mImageView.post(new Runnable() {
public void run() {
mImageView.setImageBitmap(b);
}
});
}
}).start();
}
매니저
final Handler myHandler = new Handler(Looper.getMainLooper());
(new Thread(new Runnable() {
@Override
public void run() {
final Bitmap b = loadImageFromNetwork();
myHandler.post(new Runnable() {
@Override
public void run() {
mImageView.setImageBitmap(b);
}
});
}
})).start();
}

더 많은 정보를 위해서
http://android-developers.blogspot.com/2009/05/painless-threading.html
http://www.aviyehuda.com/blog/2010/12/20/android-multithreading-in-a-ui-environment/