우선 AsyncTask에 대한 내용을 읽어보시길 추천합니다. AsyncTask도 실행하는 순서(onPre, doInback, onPost)가 있습니다. 우선 Activity의 라이프 사이클과는 별도로 동작한다고 보시면 됩니다.
간단하게 스레드 1과 스레드2와 서로 연관하는 부분이 없어서, 종료시점을 서로 알지 못하는 경우라고 생각하시면 됩니다. 대체로는 AsyncTask가 Activity의 레퍼런스를 유지하고 있다고 데이터를 Activity로 전송하는 경우가 많아서 Activity가 더 오래 남아있는 객체라고 생각할 수 있지만, 꼭 그렇지만은 않습니다. 그래서 onPostExecute 메서드에서 Activity의 메서드를 호출하는 경우에는 반드시 Activity 변수를 null체크해야 합니다.
Asynctask를 static inner 클래스나 외부 클래스의 경우가 위와 동일하고요..
단순 inner 클래스로 구현한 경우에는 Activity가 AsyncTask의 종료보다는 오래 남아있게 됩니다. 이런 경우 메모리 릭의 현상이 발생하게 됩니다.