[Android SDK] Android handle을 이용한 지연처리: postDelayed 등

안드로이드 코딩하다보면 1초후에 동작 같은 기능이 필요할때가 있다.

이럴경우 handle을 사용하면 된다.

 

단순히 1초후에 실행하고, 실행이 끝난후 확인하는 기능

 

	new Handler().postDelayed(new Runnable() {// 1 초 후에 실행
		@Override
		public void run() {
			// 실행할 동작 코딩

			mHandler.sendEmptyMessage(0);	// 실행이 끝난후 알림
		}
	}, 1000);	



	Handler mHandler = new Handler() {
		public void handleMessage(Message msg) {  // 실행이 끝난후 확인 가능
			
		}
	};	

 

3초후에 실행

private Handler mHandler = new Handler();
mHandler.postDelayed(mMyTask, 3000); // 3초후에 실행

private Runnable mMyTask = new Runnable() {
	@Override
	public void run() {
		// 실제 동작
	}
};

 

0.5초 후에 실행하고 실행시 메시지를 전달하며, 실행후 받은 메시지에 따라 처리하는 기능

	new Handler().postDelayed(new Runnable() {// 0.5 초 후에 실행
		@Override
		public void run() {
			// 실행할 동작 코딩
			Message msg1 = mHandler.obtainMessage();  //사용할 핸들러를 이용해서 보낼 메시지 객체 생성
			Bundle b1 = new Bundle();	//메시지를 담을 번들 생성
			b1.putBoolean("END_AUTH", true);	//번들에 메시지 추가
			msg1.setData(b1);	//메세지에 번들을 넣는다.
			mHandler.sendMessage(msg1); 	//메세지를 핸들러로 넘긴다.
		}
	}, 500);	


	Handler mHandler = new Handler() {
		public void handleMessage(Message msg) {  // 실행이 끝난후 확인 가능
        		Bundle bd = msg.getData();
        		if(bd.getBoolean("END_AUTH")){
        			// 메시지를 받고 처리할 부분

        		}
			
		}
	};	

 

참고1.. Thread를 이용한 바로 처리하는 방법

 

 

new Thread(new Runnable() { @Override public void run() { // 로직처리 handler.sendEmptyMessage(0); } }).start(); Handler handler = new Handler() { @Override public void handleMessage(Message msg) { // UI처리 } };

 

참고2.. Timer를 이용한 처리방법

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

new Timer().schedule(new TimerTask() {
    public void run() {
        // UI 및 로직
    }
}, 1000); // 1초후 실행

 

참고3. Async Task를 이용한 바로 처리 방법

 

new AsyncTask() {
    @Override
    protected void onPreExecute() {
        // UI 처리
        super.onPreExecute();
    }

    @Override
    protected Boolean doInBackground(String... params) {
        // 로직 처리
        return true;
    }

    @Override
    protected void onProgressUpdate(Integer... progress) {
        // UI 처리
    }

    @Override
    protected void onPostExecute(Boolean result) {
        // UI 처리
    }

    @Override
    protected void onCancelled() {
        super.onCancelled();
    }
}.execute();

 



출처: http://androi.tistory.com/57 [안드로이 스토리]

 

[출처] https://indienote.tistory.com/135

 

 

 

 

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
47 [Android SDK] 동기와 비동기 처리의 이해 및 안드로이드에서의 적용 file 졸리운_곰 2024.05.01 120
46 [Android SDK] [Android] 안드로이드에서 Delay 구현 - Thread 졸리운_곰 2024.05.01 99
45 [Android SDK] How to implement Do nothing for a certain period of time in Android 졸리운_곰 2024.05.01 134
» [Android SDK] Android handle을 이용한 지연처리: postDelayed 등 졸리운_곰 2024.05.01 132
43 [Android SDK] [안드로이드 스튜디오] 로딩창 구현 (ProgressBar) file 졸리운_곰 2024.05.01 126
42 [Android SDK] [Android] 안드로이드 Alert 창 띄우기 file 졸리운_곰 2024.05.01 124
41 [Android SDK] Android thread에서 Toast 호출하기 file 졸리운_곰 2024.05.01 88
40 [Android SDK] runOnUiThread란? (개념과 사용법) file 졸리운_곰 2024.05.01 165
39 [Android SDK] How to enable/disable WiFi from an application? 안드로이드 와이파이 켜고 끄기 java 졸리운_곰 2024.05.01 138
38 [Android SDK] 안드로이드 화면꺼짐 방지 코드 졸리운_곰 2024.05.01 108
37 Android WebView javascriptInterface 사용하기 file 졸리운_곰 2018.03.26 656
36 안드로이드 에서 JSON 읽어오기 (JSON parser) file 가을의곰 2017.06.18 827
35 Android Basic JSOUP Tutorial file 졸리운_곰 2017.03.27 349
34 [Android] 안드로이드 웹페이지 파싱하기 - jsoup 이용하기 file 졸리운_곰 2017.03.27 724
33 Android에서 jsoup를이용하여 HTML 파서(Parser) file 졸리운_곰 2017.03.27 764
32 윈도우즈에서 IntelliJ IDEA + android 개발환경 만들기 file 졸리운_곰 2016.12.05 488
31 단말기 내부에 폴더 및 txt파일 생성하기 file 졸리운_곰 2016.05.01 171
30 wifi 연결시 알림 android source 졸리운_곰 2016.05.01 250
29 How to use Broadcast Receiver in Android – Send and Receive SMS file 졸리운_곰 2016.05.01 292
28 [Android] Layout XML - layout_weight file 졸리운_곰 2016.04.30 23630
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED