메모리가 필요하면 Android에서 전체 프로세스를 종료합니다.
활동이 해제 된 후 가비지 수집 대상이되고 공간이 여유 공간 내에서 내입니다. 프로세스 내 공간을 확보해도 Android에서 사용할 수있는 메모리에는 아무런 영향을 미치지 않습니다.
Activity.onDestroy는 최선형이라고합니다. onDestroy 메서드를 호출하지 않고도 Activity가 파괴 될 수 있습니다. onPause가 보장됩니다.
안드로이드 각 공정 우선, -15 ~ 16의 숫자라고 oom_adj 할당한다. 숫자가 클수록 프로세스가 죽을 확률이 높습니다. 시스템 응용 프로그램에만 oom_adj<이 있습니다. 현재 표시된 응용 프로그램에는 oom_adj가 0입니다. UI가없고 실행중인 서비스가 4-5 영역에 있습니다. 가시적이지 않고 실행중인 서비스가없는 프로세스는 oom_adj가 더 높을 것이고 백 스택에없는 프로세스는 가장 높은 값을 가질 것입니다.
각 장치는, 컴파일 된 테이블, 안드로이드 시스템의 일부를 보유하는 메모리 부족 조건 어소 oom_adj 값. 예를 들어, 안드로이드가 마지막 8M 메모리로 내려 가면 oom_adj가 12 이상인 모든 프로세스를 종료해야한다는 것을이 테이블은 말합니다. 메모리 상황이 더욱 심각 해지면 안드로이드는 oom_adj가 낮거나 낮은 프로세스를 죽일 수 있습니다.
안드로이드가 메모리를 필요로하기 때문에 프로세스가 kill 될 때, kill -9와 동일하게 처리됩니다.
따라서 프로세스가 종료되기 전에 프로세스 상태를 저장할시기를 알 수있는 방법이 없습니까? – Sten
@Sten : 수정하십시오. 상태가 변경되면 상태를 저장하십시오. – CommonsWare