我正在使用MediaStore将图像存储在外部存储中,并发送带有附件的图像,图像保存和带附件的发送电子邮件工作正常,我想在邮件发送后删除外部存储中的图像。有人知道,请给我的示例代码..
全部谢谢,
答案 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 { }
});
}