티스토리 뷰

참고 1 : http://android-developers.blogspot.com/2010/12/saving-data-safely.html
참고 2 : http://artofcode.org/entry/%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%95%88%EC%A0%84%ED%95%98%EA%B2%8C-%EC%A0%80%EC%9E%A5%ED%95%98%EA%B8%B0

참고 링크를 잘 살펴보면 ext4의 문제점이 뭐고 해결 방법은 뭔지 알것이다. ext4를 사용하면 파일 쓰기 도중 배터리 분리시 파일이 날아가버린다. 이를 위해 sync를 사용한다.


/****************************************************************************************
         * 20110420 YSK EXT4 File save Add Start
         ****************************************************************************************/
        OutputStream os=null;
        BufferedOutputStream bos=null;
        try {
        	os = mContext.getContentResolver().openOutputStream(res);
        	
           	bos = new BufferedOutputStream(os, 8192*2);
        	bos.write(data);
        	bos.flush();
        	new OutputStreamSyncUtil((FileOutputStream)os); // 별도로 Class를 만들어 사용함
        	
        } catch (IOException e) {
        	Log.d("TEST", "makePart error..."+e.toString());
        } finally {
        	if(bos != null) try{bos.close();} catch(Exception e){};
        	if(os != null) try{os.close();} catch(Exception e){};
        }
        /****************************************************************************************
         * 20110420 YSK EXT4 File save End
         ****************************************************************************************/

실제 사용예는 위와 같다. 별도로 클래스를 만들어서 OutputStream을 넘겨주었다. 클래스 내부는 알아서 처리해도 되고 참고 링크를 따라가면 있는 sync 사용예제를 이용해도 된다.

듀얼코어에서는 속도 딜레는 거의 없었다.

감사합니다. 
댓글
댓글쓰기 폼