Toast
특징
별다른 제약없이 컴포넌트들이 사용가능
back이나 home로 나와도 일정 시간 남아 있음
생성은 Main Thread, Show는 아무 Thread에서 가능
호출된 Toast가 사라져야 다음 Toast 표시됨
Focus를 받을 수 없음
Toast는 일반 View와 다르게 자신만의 Window를 가지기 때문에 독립적으로 동작 가능
따라서 BroadcastReceiver나 Service에서도 사용이 가능
Toast.show 함수가 독립적으로 실행 가능한 이유는 Handler를 사용하고 있기 때문
Main Thread에서 생성되면서 미리 등록해둔 Handler에 .post로 요청하기 때문에 작동됨.
Toast가 하나씩 표시되는 것은 Toast를 관리하는 NotificationManagerService가 중간 관리자 역할을 수행하기 때문
하나의 큐에 저장됨.
* Toast는 화면에서만 독립적이지 다른 부분은 연관되어 있음.
Toast를 포함한 Application이 죽어서는 안됨
해당 Appcliation Process은 Foreground 속성을 가지게 됨
이러한 부분으로 메모리에 악영향을 미칠 수 있으므로 시간이 제한되어 있음
Focus를 받을 수 없는 이유는 LayoutParams에 FLAG_NOT_FOCUSABLE 속성이 정해져 있기 때문
댓글