반응형
오늘은 안드로이드 스튜디오 Handler를 사용하는 방법에 대해 포스팅을 해보도록 하겠습니다.
이번에는 차례대로 핸들러의 개념과 사용법, 실제 코드 예제 등을 포함하도록 작성하였습니다.
핸들러(Handler)란?
Handler는 안드로이드에서 스레드 간 통신을 위해 사용되는 객체입니다.
주로 백그라운드 스레드에서 메인(UI) 스레드로 작업을 보내기 위해 사용됩니다.
<Handler 사용 방법>
1. Handler 객체 생성
가장 먼저, Handler 객체를 생성해야 합니다.
이때 생성된 Handler 객체는 UI 스레드와 연결됩니다.
Handler handler = new Handler();
2. Handler를 사용하여 작업 예약
Handler를 사용하여 백그라운드 스레드에서 UI 스레드로 작업을 예약할 수 있습니다.
handler.post(new Runnable() {
@Override
public void run() {
// 작업 수행할 코드
}
});
이제 handler를 통해 버튼을 눌렀을 때 3초 뒤에 textView에
"3초 지남"이라는 글자가 나타나도록 하는 코드를 만들어보겠습니다.
//MainActivity.java 파일
public class MainActivity extends AppCompatActivity {
Button button;
TextView textView;
Handler handler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = findViewById(R.id.button);
textView = findViewById(R.id.textView);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
handler.postDelayed(new Runnable() {
@Override
public void run() {
textView.setText("3초 지남");
}
},3000);
}
});
}
}
//activity_main.xml 파일
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<androidx.appcompat.widget.Toolbar
android:id="@+id/balence_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#039BE5"
android:minHeight="?attr/actionBarSize"
android:theme="@style/MyFont"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:title="My Application"
app:titleTextColor="#FFFFFF" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:textSize="50sp"
android:textColor="#6C2B22"
app:layout_constraintBottom_toTopOf="@+id/button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/balence_toolbar" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
버튼을 누르고 3초 후에 textView 안에 있는 글자가 3초 지남이라는 글자로 바뀌는 것을 확인할 수 있습니다.
이렇게 Handler를 이용하면 Splash 화면을 제작하거나
잠시 a를 진행하기 위해 b를 작업 예약을 걸어두는 코드를 만들어낼 수 있습니다.
반응형
'안드로이드 스튜디오 앱 개발 > 개념 안드로이드 스튜디오' 카테고리의 다른 글
안드로이드 스튜디오 타이틀바 버튼(메뉴 아이템)들 추가하기 (menu item) [Android Studio] (0) | 2023.06.30 |
---|---|
안드로이드 스튜디오 랜덤함수 중복제거하는 방법 [Android Studio] (0) | 2023.06.28 |
자바(JAVA) 언어에 대해서 확실하게 알아보자!! 그리고 자바의 객체 지향 프로그래밍이란? (0) | 2023.06.22 |
안드로이드 스튜디오 드로어블 객체로 배경 지정하기(자바 코드) (0) | 2023.06.20 |
안드로이드 스튜디오 리사이클러뷰 아이템 전체 삭제 clear() [Android Studio] (0) | 2023.06.19 |