Handler (반복작업 처리) Main Thread 에서 처리하는 코드(액티비티 내부 코드) 중에 일정한 단기 작업을 계속 반복 처리해야 할 때 사용 -> while문을 이용해 무한루프/오래 운영하면 화면 처리를 할 수가 X 아무것도 안 하는 순간(텀)을 주면 그 텀 사이에 화면처리를 할 수 있음 (그 외 다양한 방법이 존재) 개발자는 Handler를 통해 안드로이드OS 에게 작업 수행을 요청 -> 안드OS는 작업을 하지 않을때 요청 받은 작업 처리(Main Thread 에서 처리) 5초 이상 걸리는 작업은 지양, Main Thread 에서 처리하기 때문에 화면처리도 가능 val handler = Handler(Looper.myLooper()!!) // Looper : 대기하고 있다가 작업 요청이 들어..
Android
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbk91ki%2Fbtsal4STLDq%2FDmtLd6vr4T1YnBlqGnyxk0%2Fimg.png)
Android Thread 소프트웨어 관점에서 스레드는 하나의 프로그램에서 여러개의 실행 단위/흐름이 존재함을 의미 (*프로세스는 실행 중인 '프로그램') 여러 처리를 비동기적으로 처리하기 위해 사용 -> 어떤 작업이 수행중임에도 다른 작업이 동시에 수행됨. 한 작업이 종료된 후 두 작업 사이에 맞춰야할 것이 있다면 그때 추가 작업 수행 (순차적 처리 X, 동시 처리 O) 안드로이드는 비동기적 처리 외에도 네트워크 관련된 코드는 전부 Thread로 운영해야 함 (주로 하위 버전에서) Activity의 코드 처리 위해 Thread 발생 (안드로이드 OS가 발생시킴) -> Main Thread / UI Thread (이 안에서 화면 갱신 가능) 하나의 스레드 안에서는 동기적으로 처리(순차적 처리)하기 때문에..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEmmop%2Fbtsaf7Xm5DC%2FH1XdwkFIFbLaJpBko3uKtK%2Fimg.png)
Message Notification 안드로이드 9.0에서 새롭게 추가 다자간의 메시지 내용을 표시하는 용도로 사용 (다자간의 채팅, 메시지를 주고 받는 것 같은 화면을 제공) binding.button.setOnClickListener { // 메시징 notification은 안드 9.0부터 시작하므로 버전별로 분기 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { val builder = getNotificationBuilder("message", "message style") builder.setContentTitle("Message Style") builder.setContentText("Message Style Notification") // 메세지..
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fclc3Ng%2FbtsahJ2FzD6%2FhKY8cZGqGtqEtNRCyhRaG1%2Fimg.png)
안드로이드 4.0 이하 버전 -> 기본 알림 메시지 / 4.1 이상 -> 알림 메시지를 접었다 폈다 가능 펼쳐진 메시징에 부가 정보 표시 가능 ex)이미지 등, 메세지 os 버전별로 접힌 상태로, 펼져진 상태로 등등 인터페이스 조금 달라짐 Big Picture 메세지를 펼쳤을 때 이미지를 볼 수 있음 binding.button.setOnClickListener { val builder = getNotificationBuilder("style", "style Notification") builder.setContentTitle("Big Picture") builder.setContentText("Big Picture Notification") // 메세지 아이콘 builder.setSmallIcon(and..