320x100
개발을 하고 있다가
꼭 한 번쯤은 특정 시간 뒤에 작업 해야 하는
경우가 발생하기도 한다
특히 시간 기준으로 몇초, 몇분 등 뒤에
작업이 필요하게 될 경우
해당 함수들을 사용하면 될 것 같다
[시작 버튼] 클릭 시 3초 뒤 '출력 완료' 라는 text 를 뿌리고,
시작 하고 있는 도중 [종료 버튼] 클릭 시 3초 뒤 작업을 강제 종료 시킨다
코드 1 : MainActivity.kt
class MainActivity : AppCompatActivity() {
private lateinit var bStart: Button
private lateinit var bEnd: Button
private lateinit var tvMsg: TextView
private var handler: Handler? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
bStart = findViewById(R.id.b_start)
bEnd = findViewById(R.id.b_end)
tvMsg = findViewById(R.id.tv_msg)
bStart.setOnClickListener(buttonListener)
bEnd.setOnClickListener(buttonListener)
}
private val buttonListener = View.OnClickListener { b ->
when(b.id) {
R.id.b_start -> {
if(handler == null) { // null check(중복 작업 막기)
handler = Handler(mainLooper)
handler?.let { it ->
it.postDelayed({ // *초 뒤 작업
// 작업 내용
tvMsg.text = "출력 완료"
handler = null
}, 3000) // 3초 설정
}
tvMsg.text = "시작(3초 뒤 메세지 출력)"
}
}
R.id.b_end -> {
if(handler != null) {
handler?.removeMessages(0) // 강제 종료
tvMsg.text = "강제 종료"
handler = null
}
}
}
}
}
코드 2 : activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
tools:context=".MainActivity" >
<Button
android:id="@+id/b_start"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="시작" />
<Button
android:id="@+id/b_end"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="종료" />
<TextView
android:id="@+id/tv_msg"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="none"
android:textAlignment="center"
android:textAppearance="@style/TextAppearance.AppCompat.Large" />
</LinearLayout>
320x100
'Android > Kotlin' 카테고리의 다른 글
[Android][Kotlin] Thread 상속 받고 Thread 일시정지 (0) | 2022.10.07 |
---|---|
[Android][Kotlin] Dialog 커스텀 및 스타일 수정 (0) | 2022.10.05 |
[Android][Kotlin] AlertDialog (2) | 2022.10.04 |
[Android][Kotlin] 특정 View를 Bitmap으로 변환 후 이미지로 저장하는 방법 (0) | 2022.09.23 |
[Android][Kotlin] View 테두리 코드로 변경하는 방법 (0) | 2022.09.23 |