쓰레드 두번째 post메소드에 인자로 Runnable인터페이스를 넘겨주는 방법
이런 방법도 있습니다.
소스를 보면 이해가 되실 겁니다.
main.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"
>
<TextView
android:id="@+id/mainvalue"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:text="MainValue : 0"
/>
<TextView
android:id="@+id/backvalue"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:textSize="20sp"
android:text="BackValue : 0"
/>
<Button
android:id="@+id/increase"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:onClick="mOnClick"
android:text="증가"
/>
</LinearLayout>
자바파일
package com.android.ex91;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.TextView;
public class ex91 extends Activity {
int mMainValue = 0;
int mBackValue = 0;
TextView mMainText;
TextView mBackText;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mMainText = (TextView)findViewById(R.id.mainvalue);
mBackText = (TextView)findViewById(R.id.backvalue);
BackThread thread = new BackThread();
thread.setDaemon(true);//데몬쓰레드로 설정
thread.start();//쓰레드 시작
}
public void mOnClick(View v) {
mMainValue++;
mMainText.setText("MainValue : " + mMainValue);
}
class BackThread extends Thread {//Thread 클래스를 상속 받음
public void run() {//run을 오버라이딩함
while (true) {
mBackValue++;
//이전예제에서는 sendEmptyMessage(0)이었으나 지금 이렇게 바뀜
mHandler.post(new Runnable() {//Runnable 인터페이스를 구현하는 방법 post메소드의 인자로 넘김
public void run() {
mBackText.setText("BackValue : " + mBackValue);
}
});
try {
Thread.sleep(1000);
} catch (InterruptedException e) {;}
}
}
}
Handler mHandler = new Handler();//핸들러 객체 선언후 handleMessage메소드를 오버라이딩 하는게 아님
}
'프로그래밍 > 안드로이드' 카테고리의 다른 글
안드로이드 작업스케쥴링 sendMessageDelayed를 언제 쓰지 (0) | 2012.08.22 |
---|---|
안드로이드 루퍼(looper)!? 쓰레드와 관포지교 관계 (3) | 2012.08.22 |
안드로이드 쓰레드 4번째 메시지 풀을 이용하는 방법(obtain 메소드) (0) | 2012.08.21 |
안드로이드 쓰레드 3번째 쓰레드를 구현하는 클래스와 메인 클래스를 따로 만들어서 처리해보자 (0) | 2012.08.21 |
안드로이드 쓰레드 첫번째 예제 handleMessage 구현하는 방법 (1) | 2012.08.21 |
안드로이드 Context Menu를 만들어보자. (0) | 2012.08.16 |
안드로이드 Listener의 이해, 버튼을 누르면 Text가 바뀐다 (0) | 2012.08.15 |
안드로이드 Toast 메시지에 내가 원하는 그림을 넣어보자 (2) | 2012.08.13 |