안녕하세요. 현재 pdf파일 다운로드 하면
휴대폰에 저장이 되면서 화면에서 바로 pdf뷰어로 보여지게 해놨습니다.
근데 파일을 휴대폰에 저장시키면 안된다고 하여 파일을 삭제하여야 하는데
삭제 시점을 어떻게 잡아줘야할지 모르겠습니다.
현재 소스론 뷰어가 실행이 되면 파일이 삭제되어 X표시로 떠 안보입니다.
뷰어가 종료되고 뒤로가기 버튼을 눌렀을 때 삭제를 시키면 될것같은데 방법을 모르겠습니다.
소스는
public void run() {
try {
mHandlerSubs.post(desuUpdate);
String mPath = Environment.getExternalStorageDirectory().getAbsolutePath() + "/Download/";
URL myFileUrl = new URL(imgUrl + filePath);
HttpURLConnection conn = (HttpURLConnection)myFileUrl.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Cookie", idValue);
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
File file = new File(mPath, fileNm);
OutputStream out = new FileOutputStream(file);
saveRemoteFile(is, out);
out.close();
viewFile(mContext, mPath, fileNm);
} catch (IOException e){
e.printStackTrace();
mHandlerSub.post(yrocUpdate);
}
}
public static void viewFile(Context ctx, String filePath, String fileName) {
// TODO Auto-generated method stub
Intent fileLinkIntent = new Intent(Intent.ACTION_VIEW);
fileLinkIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
fileLinkIntent.addCategory(Intent.CATEGORY_DEFAULT);
File file = new File(filePath, fileName);
Uri uri = Uri.fromFile(file);
String fileExtend = getExtension(file.getAbsolutePath());
if (fileExtend.equalsIgnoreCase("mp3")) {
fileLinkIntent.setDataAndType(Uri.fromFile(file), "audio/*");
} else if (fileExtend.equalsIgnoreCase("mp4")) {
fileLinkIntent.setDataAndType(Uri.fromFile(file), "vidio/*");
} else if (fileExtend.equalsIgnoreCase("jpg")
|| fileExtend.equalsIgnoreCase("jpeg")
|| fileExtend.equalsIgnoreCase("gif")
|| fileExtend.equalsIgnoreCase("png")
|| fileExtend.equalsIgnoreCase("bmp")) {
fileLinkIntent.setDataAndType(Uri.fromFile(file), "image/*");
} else if (fileExtend.equalsIgnoreCase("txt")) {
fileLinkIntent.setDataAndType(Uri.fromFile(file), "text/*");
} else if (fileExtend.equalsIgnoreCase("doc")
|| fileExtend.equalsIgnoreCase("docx")) {
fileLinkIntent.setDataAndType(Uri.fromFile(file), "application/msword");
} else if (fileExtend.equalsIgnoreCase("xls")
|| fileExtend.equalsIgnoreCase("xlsx")) {
fileLinkIntent.setDataAndType(Uri.fromFile(file),
"application/vnd.ms-excel");
} else if (fileExtend.equalsIgnoreCase("ppt")
|| fileExtend.equalsIgnoreCase("pptx")) {
fileLinkIntent.setDataAndType(Uri.fromFile(file),
"application/vnd.ms-powerpoint");
} else if (fileExtend.equalsIgnoreCase("pdf")) {
fileLinkIntent.setDataAndType(Uri.fromFile(file), "application/pdf");
} else if (fileExtend.equalsIgnoreCase("hwp")) {
fileLinkIntent.setDataAndType(Uri.fromFile(file),
"application/haansofthwp");
}
PackageManager pm = ctx.getPackageManager();
List<ResolveInfo> list = pm.queryIntentActivities(fileLinkIntent,
PackageManager.GET_META_DATA);
if (list.size() == 0) {
Toast.makeText(ctx, fileName + "을 확인할 수 있는 앱이 설치되지 않았습니다.",
Toast.LENGTH_SHORT).show();
} else {
ctx.startActivity(fileLinkIntent);
}
if(file.exists())
{
file.delete(); // 삭제
Log.i("file=====", "Delete");
}
}
어떻게 해야 파일 보여주고난 후 삭제할 수 있을까요??