댓글 리스트
-
작성자 슈퍼성근 작성시간13.11.01 그러므로 리시버의 생명주기는 딸랑 onReceive 함수가 호출이 끝이죠.
해당 함수가 리시버의 시작이고 곧 끝입니다.
해당 함수를 리턴해 버리면 그다음 context를 이용하여
레이아웃 등의 작업은 사용할 수가 없을 꺼예요.
그렇다면 AyncTask에서 postExecute에서 어떻게 그림을 그려야 하는가가 문제죠..
그럴때는 sendBroadcast를 이용하여 자신에게 그림을 그리도록 Broadcast를 날려야 합니다.
위젯을 사용하실때 힌트한가지를 드린다면
위젯이 그려야하는 페이지별로 상태값과 상태값에 해당하는
화면 그리기 함수를 분리하세요.
예를 들어
initDraw()
idleDraw()
...
같이 말이죠.
-
작성자 jjang 작성자 본인 여부 작성자 작성시간13.11.02 주인장님 상세한 답변에 감사드립니다^^
일반 앱에서는 아무 문제없이 잘 돌아가던 기능들도 앱 위젯에서는 제약을 받아 이러저리 돌려서 구현해야 하는
경우가 많더라구요.
앱 위젯이라도 메인 스레드에서 문제가 발생하면 일반 앱에서 this 로 했던 코드를 context 로 바꿔주면 대부분
돌아가던데 이번에 Async Task를 사용하다보니 의외의 난제를 만나게 된 것 같습니다.
지적해주신 내용은 저처럼 앱 위젯에 관심이 많은 사람들에게 엄청나게 중요한 내용인 것 같은데 잘 참고하여
new getWeb().execute().get()같이 Async Task를 쓰는 취지를 무색케하는 꼼수를 쓰지않고 해결해보도록
하겠습니다.