마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

onDestory()의 실행을 보장할수 있나요?

0 추천
예시) 메인 액티비티에서 file을 하나 생성하고 앱이 종료될때 해당 액티비티의 onDestory()에서 경로의 파일을 삭제하도록 합니다.

 

제가 알기로 onPause()같은건 실행되지 않을 수 있다고 들었는데 onDestroy()도 그냥 폰을 꺼버린다거나 하면 실행이 안 되지 않나요?

 

그렇게 되면 쓰레기 파일이 저장소에 남아있게 될 텐데 저장소에 파일을 항상 삭제하도록 보장하는 방법은 없는지? IOS의 경우에는 보니까 비슷한 로직으로 작성된건데 그냥 껐는데도 다시 켜 보니까 파일이 삭제되어 있더라구요.
더듬이 (340 포인트) 님이 2017년 5월 23일 질문

2개의 답변

0 추천
 
채택된 답변
전원을 끄면 호출 될 수 있지만,

 방전되버리면, 호출 자체가 안되며,

 onDestory가 호출되는 타이밍은 VM이 정하기 때문에, 언제 호출 될지 알 수 없습니다.

 onCreate나 onResume시 파일이 있으면, 삭제하고 시작되게  구현 하시는게 좋을 듯 합니다.
사악미소 (65,330 포인트) 님이 2017년 5월 23일 답변
더듬이님이 2017년 5월 24일 채택됨
0 추천
일단 결론 부터 말씀 드리면 보장 되지 않습니다.

모든 생명주기 함수는 비일반적인 상황에서의 호출을 보장 받지 못합니다.

작성자와 비슷한 작업을 진행한 적이 있는데 그당시 저는 종료될때가 아닌 어플이 시작될때 해당 파일들을 삭제 하도록 하였습니다.
ThisPlus (46,920 포인트) 님이 2017년 5월 23일 답변
...