다이얼로그 3

스레드 엄마의 심폐 소생술에... 로이드가

프로그래스 다이얼로그는 스레드 엄마가 품어줘야 비로소 새 생명이 태어 날 수 있는 조건이 갖추어진다. 즉, 스레드 엄마가 제대로 품지 않으면 언제든지 넘어져서 다치고 떨어져서 죽을 수도 있다. 여기서 '엄마가' 그리고 '제대로'가 참 중요하다. 무슨말이냐? 안드로이드의 우주 속에는 수 많은 스레드 엄마들이 새끼들을 키우고 살고 있는데... 아빠가 술먹고 집으로 돌아오다가 옆집 애가 뛰어노는 모습을 보고, 자기 자식인줄 알고 집으로 데리고 왔다면? 안드로이드 우주에선 엄마들이 자기 애가 아니면 그냥 밖으로 던져 버린다. 즉, 사망이다. 여기서 알고 넘어가야 할 것은? 1. 아빠도 누가 우리 자식인지 알아야 애를 잘 데려 와서 키울 것이고2. 엄마도 애가 멀리 나가서 다른 자식과 햇갈리지 않도록 해야 한다는..

브로드캐스트 리시버에서 하지 말아야 할 것들

안드로이드 브로드캐스트 리시버에서 하지 말아야 할 것들... 일단 생각 나는 것부터 적어 보자. 1. 프로그래스 다이얼로그를 쓰지 말자. 2. asyncTask를 쓰지 말자. android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application 둘 다 위와 같은 에러가 난다. 왜냐? 브로드 캐스트는 시스템 스레드에서 도는데 1, 2번은 UI 스레드에서 돌기 때문이다. '결국, 너는 누구냐?' 가 된다

Preference dialog 수동으로 띄우기

Preference Dailog 즉, listprefernce, dialogpreference, muliselectelistpreference등은 기본적으로 Preference Screen에서 선택하면 뜨도록 되어있다. 하지만, 수동으로 띄워야 할 경우도 생긴다. 방법은 생각보다 간단하지만, 이 방법을 생각 해내기 까지는 쉽지 않다. ((MyDialogPreference) findPreference(KEY_DIALOG)).show(); public void show() { showDialog(null); } 1. 다이얼로그를 띄울 곳에서 .show를 해주고,2. Preference에 가서 show 메서드를 만들어 주면 된다.