2010-04-25 71 views
3

當您使用ACTION_SEND意圖(帶額外的EXTRA_STREAM)將文件附加到電子郵件時,電子郵件應用程序是否將附加文件複製到自己的位置?我的應用程序創建一個文件並將其附加到電子郵件中,但這可能會發生很多次,並且我希望能夠在不再需要此文件時刪除此文件(因此它不會使用垃圾數據淹沒用戶的存儲空間)。電子郵件意圖啓動後文件是否安全刪除?Android ACTION_SEND附加文件

回答

0

不,它不安全。如果您只是沒有將其保存到媒體庫。

2

爲了始終清理用戶的存儲空間(SDCard),可以檢查文件的lastModified()日期以確定放棄時間並將其刪除。

例如:

private void checkTempFiles() { 
    Log.d(TAG, "--> checkTempFiles"); 

    // Check if directory 'YourTempDirectory' exists and delete all files 
    String tempDirectoryPath = Environment.getExternalStorageDirectory() 
      .toString() + "/YourTempDirectory"; 
    File dir = new File(tempDirectoryPath); 
    // Delete all existing files older than 24 hours 
    if (dir.exists() && dir.isDirectory()) { 
     String[] fileToBeDeleted = dir.list(); 
     for (int i = 0; i < fileToBeDeleted.length; i++) { 
      File deleteFile = new File(tempDirectoryPath + "/" 
        + fileToBeDeleted[i]); 
      Long lastmodified = deleteFile.lastModified(); 
      if (lastmodified + 86400000L < System.currentTimeMillis()) { 
       if (deleteFile.isFile()) { 
        deleteFile.delete(); 
       } 
      } 
     } 
    } 
}