문제

Android 주석을 사용하여 Android용으로 개발 중입니다.관찰자로 활동을 추가하려는 단일 관찰 가능 개체가 있습니다.다음과 같은 것 :

@EActivity(R.layout.myActivity)
public class MyActivity extends SherlockActivity implements Observer { 

    @Bean //has singleton scope
    protected Observerable o;

    @Override
    public void onCreate() {
        o.registerObserver(this);
    }

    @Override
    public void onDestroy() {
        o.unregisterObserver(this);
    }

    //more code

내 질문은 on destroy 방법에 있습니다.중지되거나 일시 중지된 상태에서 Android가 활동을 종료하는 상황이 있습니까? 없이 부름 onDestroy()?그렇다면 내 Observerable 시스템에서 더 이상 사용되지 않는 활동에 대한 실시간 참조를 유지하는 것은 좋지 않습니다.아니면 그렇지 않습니까?내 추정으로는 등록된 관찰자 목록에 내 모든 활동에 대한 약한 참조를 유지하여 자동으로 등록이 취소될 수 있도록 하는 것입니다.이것이 좋은 해결책입니까, 아니면 필요하지 않습니까?

도움이 되었습니까?

해결책

OS는 onDestroy를 호출하지 않고도 프로세스를 종료할 수 있지만, 그렇지 않은 경우 onDestroy 호출을 신뢰할 수 있습니다.따라서 Observable이 활동과 동일한 프로세스에 있다면 괜찮습니다.

다른 팁

액티비티의 라이프사이클에 따라 안드로이드 문서, 이 경우는 다른 응용 프로그램을 시작해야 하고 시스템에 메모리가 충분하지 않은 경우 발생할 수 있습니다.

편집하다:글쎄, 이 경우 시스템은 여전히 ​​이 메소드를 호출할 것 같습니다.더 이상 작업 흐름에 대해 잘 모르겠습니다...

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top