내 활동으로 실행되는 작업자 스레드가 있습니다. 활동을 종료 할 때 (예 : onPause()),이 스레드에 메시지를 보내고 잘못 된 것이없는 한 잠시 후 (밀리 초) 완료해야합니다. 일반적으로 onPause()에서 join()을 사용 하겠지만,이 경우에는이 스레드가 종료 순서를 수행하기 위해 UI 스레드를 사용해야합니다 (액세서리 파일 설명자를 닫으면 다른 스레드에서 작동하지 않습니다)). UI 스레드를 차단하려고하면 교착 상태가 발생합니다. 스레드가 종료 될 때까지 어떻게 든 앱 종료를 연기 할 솔루션을 찾고 있습니다. 아마도 이런 경우에 출구를 중단 할 수만 있다면 나중에 수동으로 finish()를 호출 할 수 있지만이 작업을 수행 할 수 있는지 여부는 확실하지 않습니다.정리 작업이 완료 될 때까지 Android 활동 차단하기
스레드가 결국 정리를 끝내고 종료하는 것이 매우 안전하지 않은 것처럼 보인다고 가정합니다.
응용 프로그램이 종료 된 후 정리를 수행하는 것은 문제가되지 않습니다. 문제는 정리가 완료 될 때까지 응용 프로그램 종료를 연기하는 것입니다. – Ytai
수정 사항을 확인하십시오. –
(3) : onBackPressed()는 앱 종료시 유일한 상황이 아닙니다. 가능하다면 가능한 모든 출구 경로를 덮으려는 시도는 매우 신뢰할 수없고 휴대하기 어렵고 비 미래 보장적입니다. AsyncTask는 완전히 불필요합니다. 일반적으로 정리에는 밀리 초가 소요됩니다. 난 그냥 중단하고 이전 실행을 완전히 정리하기 전에 응용 프로그램이 다시 시작하지 않도록 모든 기회를 잡기를 원합니다. – Ytai