JY-Dev Tech Blog

안드로이드(Android) - Handler Deprecated? 본문

안드로이드/그 외 여러가지

안드로이드(Android) - Handler Deprecated?

JY-Dev 2020. 8. 13. 15:37

[OverView]

원래는 Handler를 선언해줄때 생성자로 아무것도 넣어주지 않았습니다.

하지만 언제 부터인가 이 메소드가 Deprecated 됐습니다. 물론 사용해도 상관은없지만 공식문서에서는 이런 버그가 생길수도 있다고합니다.

 

[Handler()]

Handler 생성 중에 암시 적으로 Looper를 선택하면 작업이 자동으로 손실 (Handler가 새 작업을 예상하지 않고 종료되는 경우), 충돌 (Looper가 활성화되지 않은 스레드에서 처리기가 생성되는 경우) 또는 경쟁 조건이 발생하는 버그가 발생할 수 있습니다. 핸들러가 연관된 스레드가 작성자가 예상 한 것과 다른 경우. 대신, {link android.view.View # getHandler} 등을 Executor사용하여 루퍼를 명시 적으로 사용하거나 지정하세요 Looper#getMainLooper. 암시 적 스레드 로컬 동작이 호환성 new Handler(Looper.myLooper())을 위해 필요한 경우을 사용 하여 독자에게 명확하게하십시오.

 

라고 명시되어있습니다. 그래서 생성자로 Looper를 넣어서 사용하도록 합시다.

Handler(Looper.getMainLooper())
Comments