Home [Android] Handler Deprecated 문제
Post
Cancel

[Android] Handler Deprecated 문제

Handler자체가 deprecated된 것은 아닙니다. Handler의 생성자인 Handler()가 deprecated되었습니다. 암시적으로 Looper가 결정되는 Handler() 생성자는 사용할 경우 문제가 생길 여지가 있다고 합니다.

  • 일부 작업이 유실될 수 있는 버그
  • Looper가 없는 쓰레드에서 생성될 경우 에러(crash)
  • Race condition

따라서 다른 생성자 Handler(Looper)를 사용해서 명시적으로 Looper를 선택해서 Handler를 생성해야합니다.

1
Handler(Looper.getMainLooper())

이런 방식으로 만들면 됩니다. 이 방법으로 Handler를 만들었다고 해서 위에서 언급했던 문제들이 완벽하게 해결되는 것은 아닙니다. 하지만 Looper를 명시적으로 전달하여 위의 문제들을 최대한 막을 수 있습니다.

참조

https://developer.android.com/reference/android/os/Handler#public-constructors_1

This post is licensed under CC BY 4.0 by the author.

[Android] Activity Lifecycle

[Android] NestedScrollView 내부에 RecyclerView를 사용했을 때 스크롤이 제대로 안되는 문제