728x90

delay를 주고 어떤 동작을 하고 싶다면 Handler클래스의 postDelayed 메소드를 이용한다.
Handler delayHandler = new Handler();
delayHandler.postDelayed(new Runnable() {
    @Override
    public void run() {
        //여기에 딜레이 후 시작할 작업들을 입력
    }
}, 3000); // 3초 지연을 준 후 시작



일정시간 지연후 처리 예제


final Handler delayHandler = new Handler();
delayHandler.postDelayed(new Runnable() {
    @Override
    public void run() {
        String msg =  macro_val;
        msg = msg + "\r";
        mSerialConnector.sendCommand(msg);
    }
}, 3000);


연속적인 시간 지연을 주는 코드를 테스트 해보고 적어둔다.

import android.content.Context;
import android.os.Handler;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import java.text.SimpleDateFormat;

public class MainActivity extends AppCompatActivity {
    Context mContext;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // System클래스의 currentTimeMillis()메서드를 활용
        SimpleDateFormat timeformat = new SimpleDateFormat( "HH시 mm분 ss초");
        String time_display = timeformat.format (System.currentTimeMillis());
        System.out.println("start : "+time_display);

        final Handler handler = new Handler();
        for(int i=0; i < 20; i++){
            final int finalI = i+1;
            handler.postDelayed(new Runnable() {
                @Override
                public void run() {
                    SimpleDateFormat timeformat = new SimpleDateFormat( "HH시 mm분 ss초");
                    String time_display = timeformat.format (System.currentTimeMillis());
                    if(finalI <= 10){
                        System.out.println(time_display);
                    } else if(finalI >= 17){
                        System.out.println("반복 횟수 : " + finalI);
                    }

                }
            }, 1000*(i+1));
        }

    }
}


728x90
블로그 이미지

Link2Me

,