안드로이드 개발 질문/답변
(글 수 45,052)
어떠한 목록을 받아와 Activity는 화면에 뿌려주는 역활인데요;
이게 상당히 작은 텀을 가지고 새로고쳐줍니다.
일단은 3초를 잡아놓고 해놓았습니다(향후 한 10초로 바꿀예정입니다)
작성한 Service는 한 Activity안에서만 시작되고,바인딩되고,종료됩니다.
Service에서 스래드를 돌려 3초단위로 서버에 요청해서 받아오고,
Activity에서도 스래드를 돌려 3초단위로 Service에 있는 객체를 받아서
Adapter로 등록한 ListView를 업데이트하기위해 notifyDataSetChage()를 호출합니다.
한 3~4분후에는 LowMemory메세지로 어플리케이션이 죽습니다....애도....
어떻한 방법을 써야 화면을 계속 고쳐져도 안죽을수있을까요...
그리고 Low Memory뜨는건 ...
일단 Service 에 스레드만 돌려보니 이상이없는걸보니...
Activity 스레드가 문제인거같은데... notifyDataSetChange가 문제인건가요???...
화면을 새로고쳐주면 안되는걸까요...
Activity에서 스레드를 돌리지 않고 Service에서 받아온 정보를 알수있는 방법은 없을까요?
답변부탁드려요 ...ㅠㅠ
이게 상당히 작은 텀을 가지고 새로고쳐줍니다.
일단은 3초를 잡아놓고 해놓았습니다(향후 한 10초로 바꿀예정입니다)
작성한 Service는 한 Activity안에서만 시작되고,바인딩되고,종료됩니다.
Service에서 스래드를 돌려 3초단위로 서버에 요청해서 받아오고,
Activity에서도 스래드를 돌려 3초단위로 Service에 있는 객체를 받아서
Adapter로 등록한 ListView를 업데이트하기위해 notifyDataSetChage()를 호출합니다.
한 3~4분후에는 LowMemory메세지로 어플리케이션이 죽습니다....애도....
어떻한 방법을 써야 화면을 계속 고쳐져도 안죽을수있을까요...
그리고 Low Memory뜨는건 ...
일단 Service 에 스레드만 돌려보니 이상이없는걸보니...
Activity 스레드가 문제인거같은데... notifyDataSetChange가 문제인건가요???...
화면을 새로고쳐주면 안되는걸까요...
Activity에서 스레드를 돌리지 않고 Service에서 받아온 정보를 알수있는 방법은 없을까요?
답변부탁드려요 ...ㅠㅠ
2010.05.01 23:48:57
우선 Service 에 콜백 함수를 등록하는 방식으로 Activity 에서 주기적으로 Service 를 참조하지 않고, 업데이트가 일어나는 경우에 Service 의 정보를 받아올 수 있습니다. http://developer.android.com/guide/developing/tools/aidl.html#implementtheinterface 문서의 끄트머리를 참고해 보세요. 그런데, Low Memory 라니 혹시 ListView 에 적용한 Adapter 의 getView 쪽에 문제가 있는게 아닐까요? (View 를 재사용하지 않고 매번 새롭게 생성한다던가...)