반응형
안드로이드, 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 는 자신의 메세지 출력을 가능한 빨리 끝내야 좋다.
반응형
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[android] activity flag 이야기 (0) | 2013.08.16 |
---|---|
[Java] URLConnection 이야기 (0) | 2013.08.14 |
[Java] ClassPath 에 대한 이야기. (0) | 2013.08.13 |
[Java] 접근 제한자에 대한 이야기. (0) | 2013.08.13 |
[android] Memory Allocation 을 추적하자! (0) | 2013.08.13 |
댓글