안드로이드 개발 질문/답변
(글 수 45,052)
DB에서 저장된 이미지들을 불러와서
file 저장 시킨 다음에 file들을 static filelist에 담아 둔답니다.
저장된 이미지 경로개수만큼 uri를 인텐트로 넘겨서 메일을 보내는데요.
메일이 가는 동안에 fileList를 삭제하면 전송이 안되더라구요.
첨부는 되는데 메일로 가지는 않는..
아래 코드에서 맨 마지막에 startActivity로 intent 보내면
토스트 창으로 "메일?메시지? 보내는중.." 이렇게 뜨는데요
메일이 완전히 도착하고 나서
fileList를 삭제하는 방법이 있을까요??
intent바로 끝나자마자 삭제하면 이미지파일들이 전송이 되질 않네요..
보내기 전에 파일경로를 삭제하면 파일이 전송이 되질 않구요..
고수님들 도와주세요 .. ㅠㅠ
일주일 이것만 붙잡고 있는것 같네요..
-------------------------------------------------------------
/이미지가 한 개 이상이기 때문에 Uri를 ArrayList로 받는다.
ArrayList<Uri> uriList = new ArrayList<Uri>();
// getPics가 가지고 있는 이미지 개수 많큼 ..
for(int i =0; i< note.getPics().size();i++)
{
rnotePic = note.getPics().get(i);
Log.v("RNote", "rnotePic :"+rnotePic);
Bitmap bitmap = BitmapFactory.decodeByteArray(
rnotePic.getPic(), 0, rnotePic.getPic().length);
// 이미지 저장
File file = new File ( Environment.getExternalStorageDirectory(),
"RNoteImage_"+i+".png");
Log.v("RNote", "filePaht :"+file.getPath());
try {
file.createNewFile();
OutputStream OpS = new FileOutputStream(file);
// bmp 이미지 파일을 png 파일로 변환해주는 부분
bitmap.compress(Bitmap.CompressFormat.PNG, 100, OpS);
OpS.close();
} catch (IOException e) {
e.printStackTrace();
}
Uri bitmapURI = Uri.fromFile(file); // <- file:///~ 형태의 URI
uriList.add(bitmapURI);
Constants.fileList.add(file);
}
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uriList);
fromActivity.startActivity(intent);
리스트는 객체가 넘어가는건 아니죠.
리스트의 링크가 넘어갈 뿐이지.
실행된 activity에서 list 처리 전 리스트를 삭제 시킨다면 처리하는 곳에서는 빈 데이터의 번지를 참조 하겠죠..
메일 전송하는 로직을 수정 가능하시면 전송 결과를 보고 처리 하시면 될건데.. 그게 안되니까 질문을 올리신거같고.
리스트를 복사를 해서 넘기면 해결은 되나 메일 보낸 쪽에서 리스트 삭제를 추가 하지는 못하실거고 -_-;;