2
나는 정의 핸들러와 활동을 가지고 것인가 , 그것은 누설 될 것인가 (아니면 오히려 외부 목록이 내 활동에 대한 영원한 참조를 유지할 것인가)? 내 활동 이외의 정적 목록에이 핸들러를 할당하는 경우 즉, : 내에서 onCreate 방법에서이 시나리오에서 활동 누출에 정의 된 핸들러는
@Override
public void onCreate(Bundle savedInstanceState) {
SomeStaticClass.addHandler(updateHandler);
}
...
public class SomeStaticClass {
static List<Handler> handlers = new ArrayList<Handler>();
public static void addHandler(Handler handler) {
handlers.add(handler);
}
}
OS가보기를 "폐기"하거나 더 이상 사용하지 않을 때 호출되는 이벤트 같은 대안이 있습니까? 그렇다면 핸들러 등록을 취소 할 수 있습니까? – bugfixr
@Chu : "보기가"폐기 "되었거나 더 이상 OS에서 사용되지 않을 때 호출되는 이벤트와 같은 대안이 있습니까?" - IMHO, 당신이 생각하고있는 문제는 정적 데이터 멤버에'Handlers'를 넣는 것 이외의 다른 방법으로 해결해야합니다. 이 "Handlers"정적 목록에 의해 달성하려는 것을 설명하려고 귀찮게하지 않았기 때문에, 나 또는 다른 누군가가 여러분이 실제로 여기서해야 할 일을 제안하는 것은 불가능합니다. – CommonsWare
좋아요, 정확히 똑같은 문제를 해결하기 위해 새로운 질문을 시작했습니다. http://stackoverflow.com/questions/6557878/updating-a-view-from-a-handler-cleaning-up-the-mess – bugfixr