如何在发送电子邮件后删除外部存储中的图像文件?

时间:2010-09-20 17:53:45

标签: android

我正在使用MediaStore将图像存储在外部存储中,并发送带有附件的图像,图像保存和带附件的发送电子邮件工作正常,我想在邮件发送后删除外部存储中的图像。有人知道,请给我的示例代码..

全部谢谢,

2 个答案:

答案 0 :(得分:3)

使用AlarmManager设置一次性闹钟,以便在合理的时间段(例如一小时)后删除您的图片。

答案 1 :(得分:0)

另一个可能的答案是在你的应用程序恢复时创建一个新线程,立即标记当前时间,让线程休眠多久,你觉得文件发送是合理的,当线程恢复时,只删除文件在之前标记的时间之前创建。这将使您能够仅删除应用程序恢复时存储位置中的内容,还可以为gmail提供时间来收发电子邮件。代码片段:(我使用C#/ Xamarin,但你应该明白这一点)

    public static void ClearTempFiles()
    {
        Task.Run(() =>
        {

            try
            {
                DateTime threadStartTime = DateTime.UtcNow;
                await Task.Delay(TimeSpan.FromMinutes(DeletionDelayMinutes));
                DirectoryInfo tempFileDir = new DirectoryInfo(TempFilePath);
                FileInfo[] tempFiles = tempFileDir.GetFiles();
                foreach (FileInfo tempFile in tempFiles)
                {
                    if (tempFile.CreationTimeUtc < threadStartTime)
                    {
                        File.Delete(tempFile.FullName);
                    }
                }
            }
            catch { }
        });
    }