Broad Cast Receiver 안드로이드 OS에서 특정 상황에 발생하는 메시지를 받아들여 동작하는 실행 단위 -> OS에서 방송을 하면 각 앱의 리시버가 동작 반드시 외부에서 접근하기 위한 이름을 가져야 함 (OS -> 앱 내부) 앱에서 안드 OS에게 방송을 요청해 방송하게 되면 BroadCastReceiver가 방송을 받아들여 동작 (같은 앱에 대해 요청해도) 실제로는 앱이 단말기에 설치되면 안드 OS가 앱 내부의 BroadCastReceiver를 목록화 해서 정리 안드 OS에서 어떤 사건이 발생 -> 관련 이름으로 지정된 BroadCastReceiver를 찾아 동작 시킴 앱에서 지정된 BroadCastReceiver 이름을 전달해 실행을 요청 -> 이 이름에 해당하는 앱의 BroadCastRec..
분류 전체보기
RunOnUiThread handler 대신 개발자가 발생 스레드에서 일부 코드를 Main Thread에서 처리할 수 있도록 하는 메서드 isRunning = true val thread1 = object : Thread() { override fun run() { super.run() while (isRunning) { // 개발자가 발생시킨 스레드에서 오래 걸리는 작업을 수행 SystemClock.sleep(500) val now2 = System.currentTimeMillis() Log.d("test", "오래 걸리는 작업 : ${now2}") // 메인 스레드에서 처리 runOnUiThread { // 고차함수로 처리하는 방법 binding.textView.text = "runOnUiThread..
Handler(화면처리) 네트워크 처리나 오래 걸리는 작업 -> 개발자가 발생시킨 스레드에서 처리 안드 8.0 미만 -> 개발자 발생 스레드에서 화면처리 할 경우 오류 나기 때문에 handler로 처리 Handler를 이용하는 모든 처리는 Main Thread에서 수행 (따라서 handler를 사용하면 화면처리를 main thread에서 가능) * 개발자가 발생시킨 스레드에서 중간중간 메인 스레드에서 작업을 요청하고 싶으면 handler로 작업을 요청!! var isRunning = false override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = ActivityMainBinding.i..
Handler (반복작업 처리) Main Thread 에서 처리하는 코드(액티비티 내부 코드) 중에 일정한 단기 작업을 계속 반복 처리해야 할 때 사용 -> while문을 이용해 무한루프/오래 운영하면 화면 처리를 할 수가 X 아무것도 안 하는 순간(텀)을 주면 그 텀 사이에 화면처리를 할 수 있음 (그 외 다양한 방법이 존재) 개발자는 Handler를 통해 안드로이드OS 에게 작업 수행을 요청 -> 안드OS는 작업을 하지 않을때 요청 받은 작업 처리(Main Thread 에서 처리) 5초 이상 걸리는 작업은 지양, Main Thread 에서 처리하기 때문에 화면처리도 가능 val handler = Handler(Looper.myLooper()!!) // Looper : 대기하고 있다가 작업 요청이 들어..