Background Thread

start button을 누르면 Thread가 배경으로 집행되는 방법.


기법1. extends Thread class



MainActivity.java

//This method will be onClick method of a button
    public void startThread(View view){
        MyThread myThread=new MyThread(10);
        myThread.start();
    }

//create a custom thread
    public class MyThread extends Thread{

        //defining second externally
        int seconds;

        //create a constructor and take parameter of seconds
        public MyThread(int seconds){
            this.seconds=seconds;
        }
        //Override run method
        @Override
        public void run() {
            for(int i=0;i<seconds;i++){
                    Log.d(TAG, "startThread:" + i);
                    try {
                        Thread.sleep(2000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
            }
        }
    }

start를 누르면 배경에서 Thread가 집행되면서도 UI는 동결하지 않고 여전히 사용할 수 있습니다.


기술2. implements Runnable interface



MainActivity.java

//This method will be onClick method of a button
    public void startThread(View view){
        Run run=new Run(10);
        new Thread(run).start();
    }

//defining custom runnable class
    public class Run implements Runnable{
        int seconds;
        //create constructor
        public Run(int seconds){
            this.seconds=seconds;
        }

        public void run() {
            for(int i=0;i<seconds;i++){

                Log.d(TAG, "startThread:" + i);

                try {
                    Thread.sleep(2000);

                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }

        }
    }

두 가지 방법의 결과는 동일합니다. 이상입니다.

좋은 웹페이지 즐겨찾기