출처: 슈퍼드로이드
16. Activity에 대해서 - Thread 와 Android Main Thread
http://cafe.daum.net/superdroid/aAfL/98
--------------------------------------------------------------
package com.test.ThreadTest;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.widget.TextView;
public class A extends Activity {
static final int REQUEST_DRAW_COUNT = 1;
TextView mTextView = null;
Handler mHandler = null;
int mCount = 0;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mTextView = (TextView) findViewById(R.id.text_view);
//mHandler = new Handler(); // runnable 방식
mHandler = new Handler() // handleMessage 방식
{
public void handleMessage(Message msg) {
switch (msg.what)
{
case REQUEST_DRAW_COUNT:
mCount = msg.arg1;
mTextView.setText("Count : " + mCount);
break;
}
}
};
}
public void onClick(View v)
{
switch(v.getId())
{
case R.id.set_count_btn:
new Thread()
{
public void run()
{
/* // runnable방식
Runnable runnable = new Runnable ()
{
public void run()
{
mTextView.setText("count : " + mCount);
}
};
Message msg = Message.obtain(mHandler, runnable);
mCount = 50;
mHandler.sendMessage(msg); */
// handleMessage 방식
Message msg = Message.obtain(mHandler, REQUEST_DRAW_COUNT);
msg.arg1 = 50;
mHandler.sendMessage(msg);
}
}.start();
/* //오류
new Thread()
{
@Override
public void run()
{
mTextView.setText("Count : " + 50);
}
}.start(); */
break;
}
}
}
'Android 안드로이드' 카테고리의 다른 글
안드로이드 난독화 Obfuscation & 자바 소스 디컴파일러 (0) | 2014.11.21 |
---|---|
EditText 특정 부분에 텍스트 붙여넣기 (0) | 2014.10.25 |
bindService : Main Thread에 서비스를 만들고 Activity와 통신 (0) | 2014.10.14 |
AVD에서 구글애드 구글광고가 안뜨고 로딩을 끝낸다고 한다. (0) | 2014.10.13 |
앱 실행중에 Resources String.xml 내용 갱신 (0) | 2014.09.29 |