티스토리 뷰

개발/개발 자료

(Android) Thread 간단예제

시원한물냉 2015. 1. 14. 13:23

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
package arabiannight.tistory.com;
  
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.View;
import android.widget.TextView;
  
public class TestThreadActivity extends Activity {
  
    private Handler mHandler;
    private TextView mTvNumber;
    private NumberThread mNumberThread;
  
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
  
        mTvNumber = (TextView) findViewById(R.id.tv_number);
        mHandler = new Handler();
  
    }
  
    public void onButtonClick(View v){
        switch (v.getId()) {
        case R.id.btn_start:
            mNumberThread = new NumberThread(true);
            mNumberThread.start();
            break;
        case R.id.btn_stop:
            mNumberThread.stopThread();
//          if( mNumberThread != null && mNumberThread.isAlive() ){
//              mNumberThread.interrupt();
//          }
            break;
        }
    }
  
    class NumberThread extends Thread {
  
        private int i = 0;
        private boolean isPlay = false;
  
        public NumberThread(boolean isPlay){
            this.isPlay = isPlay;
        }
  
        public void stopThread(){
            isPlay = !isPlay;
        }
        @Override
        public void run() {
            super.run();
            while (isPlay) {
                try { Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
                mHandler.post(new Runnable() {
                    @Override
                    public void run() {
                        mTvNumber.setText(""+i++);
                    }
                });
            }
        }
    }
}




 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함