Last active
August 29, 2015 14:05
-
-
Save wicksome/c035b7cc16158d93c982 to your computer and use it in GitHub Desktop.
분리된 클래스
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class ThreadHandlerTest extends Activity { | |
TextView tvTest; | |
@Override | |
protected void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.activity_test); | |
tvTest = (TextView) findViewById(R.id.tv_test); | |
BackThread thread = new BackThread(); | |
thread.setDaemon(true); // 메인스레드와 같이 종료하기 위해서 | |
thread.start(); | |
} | |
Handler mHandler = new Handler() { | |
public void handleMessage(Message msg) { | |
if(msg.what == 0) { | |
tvTest.setText(msg.arg1 + ""); | |
} | |
} | |
} | |
} | |
class BackThread extends Thread { | |
int val = 0; | |
Handler mHandler; | |
BackThread(Handler handler) { | |
mHandler = handler; | |
} | |
public void run() { | |
while(true) { | |
val++; | |
// 매번 Message 객체를 생성하면 비효율적이기 때문에 안드로이드는 시스템에 메시지 풀을 두오 캐시를 유지한다. | |
// 메시지 풀에서 메시지 객체를 꺼낼때 obtain() 메서드를 통해 비슷한 메시지를 꺼내 재사용 한다. | |
Message msg = Message.obtain(); | |
// static Message obtain(Handler h, int what, int arg1, int arg2) | |
// Message msg = Message.obtain(mHandler, 0, val, 0); | |
msg.what = 0; | |
msg.arg1 = val; | |
mHandler.sendMessage(msg); | |
try { | |
Thread.sleep(1000); | |
} catch(InterruptedException e) { | |
e.printStackTrace(); | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment