Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 어노테이션
- 전화걸기
- 오버로딩
- 메서드
- Android
- paint
- Menu
- 클래스
- mybatis
- JavaScript
- OGNL
- AWT
- 이클립스
- HTML
- JSP
- 기본
- Java
- Spring
- 생성자
- 메소드
- 배열
- 안드로이드
- 에러페이지
- Eclips
- 예외처리
- 국제화
- oracle
- layout
- Graphic
- struts2
Archives
- Today
- Total
note
Handler 사용하기 (로딩 표시?) 본문
수정된 이미지(코드를 더 추가하여 Progress몇개더 구현함
막대의 형태의 progress
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <!-- 막대바 형식의 progress --> <ProgressBar android:id="@+id/progress" android:layout_width="fill_parent" android:layout_height="wrap_content" style="?android:attr/progressBarStyleHorizontal" /> <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" style="?android:attr/progressBarStyleLarge" /> <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" /> <ProgressBar android:layout_width="wrap_content" android:layout_height="wrap_content" style="?android:attr/progressBarStyleSmall" /> </LinearLayout>
package com.commonsware.android.threads;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.ProgressBar;
public class HandlerDemo extends Activity {
ProgressBar bar;
//백그라운드 작업을 하고 있는 Thread 객체가 데이터를 Message에 담아서
//전달 받으면 해당메세지로 부터 데이터 추출해서 Activity의 View전달하는 역할
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg){
bar.incrementProgressBy(5);
}
};
boolean isRunning=false;
//Activity 생명주기
//onCreate메소드 -> onStart메소드 -> onResume메소드 -> 화면 display
//화면이 가려질 때는 onPause 메소드 -> onStop메소드
//화면이 가려졌다 다시 display 될때 onRestart메소드 -> onStart메소드 -> onResume메소드 -> 화면 display
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bar=(ProgressBar)findViewById(R.id.progress);
}
public void onStart(){
super.onStart();
bar.setProgress(0); //Progressbar 초기화
Thread background=new Thread(new Runnable() {
public void run(){
try{
for (int i=0; i<20 && isRunning; i++){
Thread.sleep(1000);
handler.sendMessage(handler.obtainMessage());
}
}
catch(Throwable t){
//오류가 발생하면 백그라운드 스레드를 그대로 종료한다
}
}
});
isRunning=true;
background.start();
}
public void onStop(){
super.onStop();
isRunning=false;
}
}
'Android > 기본' 카테고리의 다른 글
NetWork Wifi , 3G (0) | 2012.01.12 |
---|---|
Browser WebView (브라우저) (0) | 2012.01.11 |
Activity 생명주기 (0) | 2012.01.11 |
Message 팝업창 띄우기 경고창,토스트 표시,Progress Dialog (0) | 2012.01.11 |
ConText Menu 메뉴 (길게 터치시 팝업메뉴) (0) | 2012.01.11 |