컴퓨터/이론: 안드로이드
[2017.09.29] 27. Thread 안드로이드 실습1
heepie
2017. 9. 29. 20:37
이전 포스팅(http://heepie.tistory.com/110)에서 학습한 Thread를 안드로이드에서 실습해보자.
이번에는 SubThread를 통해 SeekBar를 회전시키고 MainThread의 버튼을 통해 SubThread를 제어해 보자.

실습
MainActivity
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | public class MainActivity extends AppCompatActivity { private SeekBar seekBar; private Rotator rotator; public static final int ROTATOR = 999; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); seekBar = (SeekBar) findViewById(R.id.seekBar); // seekBar를 제어하기 위한 toogleButton 선언 final ToggleButton toggleButton = (ToggleButton) findViewById(R.id.toggleButton); // Thread를 다룰 handler 선언 final Handler handler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case ROTATOR: seekBar.setRotation(seekBar.getRotation() + 6); } } }; toggleButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (toggleButton.isChecked()) { // On이라면 Thread 새로 생성성 rotator = new Rotator(handler); rotator.start(); } else // Off라면 Stop rotator.setStop(); } }); // Thread 초기화면 및 시작 rotator = new Rotator(handler); rotator.start(); } } class Rotator extends Thread { private Handler handler; private boolean isRotate = true; public Rotator(Handler handler) { this.handler = handler; } @Override public void run() { while (isRotate) { try { sleep(100); handler.sendEmptyMessage(MainActivity.ROTATOR); } catch (InterruptedException e) { e.printStackTrace(); } } } public void setStop() { isRotate = false; } } | cs |
스크린 샷

#Thread 실습 #Thread #안드로이드 Thread