본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[android] Toast( 토스트 ) 이야기

by 돼지왕 왕돼지 2013. 8. 14.
반응형


 안드로이드, Toast( 토스트 ) 이야기

 

[android] Toast( 토스트 ) 이야기


Toast 의 특이한 점.


Toast 생성은 메인 스레드에서만 가능하지만, show() 함수는 아무 스레드에서나 호출할 수 있다.

이는 Toast 가 안에서 handler 를 사용하기 때문이다.

생성할 때는 Handler 를 main thread 에서 생성해야 하기 때문에 main thread 에서 생성해야 하고, 그 외 함수들 호출은 아무데서나 해도 된다.




Toast 는 독립적인 Window


Window 들은 PhoneWindowManagerService 에서 관리한다. status bar, input method, activity 모두 window 이다. Toast 들은 여러 앱에서 동시에 불러도 하나씩 순차적으로 뜨는데, 그 이유는 NotificationManagerService 가 Toast message 들을 관리해주기 때문이다. Toast 의 show() 함수는 NotificationManagerSerivce 의 Queue 에 하나씩 쌓이고, 하나씩 꺼내지며 보여진다.







Toast 는 foreground. 빨리 종료하자.


Toast 는 생성을 app 에서 하기 때문에 app과 긴밀하게 연결되어 있다. 그래서 Toast 를 포함하는 앱의 프로세스는 foreground 속성을 갖는다. 따라서 Toast 는 자신의 메세지 출력을 가능한 빨리 끝내야 좋다.



반응형

댓글