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

File write작업을 안전하게..

0 추천
액티비티에서 파일 쓰기 작업을 해야 하는데요.

현재는 별도의 스레드를 생성해서 파일 쓰기 작업을 합니다.

문제는 .. 파일 쓰기도중

액티비티를 종료(back버튼이나 홈버튼)할 경우

파일이 깨지거나.. 하는 문제가 발생하는데요.

 

괜찮은 방법이 있을까요? 서비스를 쓸까.. 아니면 파일 쓰기중에는 종료를 금지시킬까..도 생각해봤는데

마땅히 어떤게 괜찮은 방법일지 결정이 안 서네요.
모나미153 (17,540 포인트) 님이 2015년 10월 2일 질문

2개의 답변

0 추천
 
채택된 답변
AsyncTask를 사용하는 형태로 설명을 해 보겠습니다.
Activity에서 AsyncTask를 멤버 변수로 가지고 있다가.. Activity의 on시리즈 메서드 중에 원하시는 종료 사이클 메서드에 AsyncTask를 interrupt를 거시면 파일 처리를 종료시킬 수 있습니다. 그리고, AsyncTask에서 onCancelled 메서드를 구현하셔서 지금까지 처리한 파일은 삭제하시는 형태로 구현하시면.. 깔끔하게 일반 스레드도 메인 스레드와 발 맞춰서 종료시킬 수 있습니다.
mcsong (44,040 포인트) 님이 2015년 10월 2일 답변
모나미153님이 2015년 10월 2일 채택됨
0 추천
액티비티 종료되어도 스레드는 돌텐데요...
Jinthree (8,980 포인트) 님이 2015년 10월 2일 답변
아... 질문을 잘못 올렸네요.
해당 파일 IO 작업은 runOnUiThread 에서 수행중입니다.
...