我的应用在临时存储区中创建了一个文件,并将一些数据写入其中。
exportFile = new File(this.getFilesDir(), filename);
然后允许用户选择一个电子邮件程序来附加和发送文件。
我开始一项活动以取得成果。
startActivityForResult(Intent.createChooser(emailIntent, "Send eMail..."), SEND_EMAIL_ACTIVITY);
在onActivityResult()事件中,我正在删除文件。
exportFile.delete();
但是,由于时间原因,我想有时文件会被附加并发送,有时文件没有被附加,并且电子邮件到达时没有附件。
如果我从onActivityResult()中删除delete(),则附件始终会到达。
问题:我应该何时/如何去删除此临时文件,以免影响电子邮件的发送?
这是我建立电子邮件意图的方式:
// Send email with attachment
String to[] = {emailAddressEditText.getText().toString()};
Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.setType("message/rfc822");
emailIntent.putExtra(Intent.EXTRA_EMAIL, to);
emailIntent.putExtra(Intent.EXTRA_SUBJECT,
"Birder's Diary Mobile: " + submitLocation.getText().toString());
emailIntent.putExtra(Intent.EXTRA_TEXT, emailBody.toString());
Uri path = null;
try {
path = FileProvider.getUriForFile(this, getPackageName() + ".provider", exportFile);
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show();
sightingsCursor.close();
return;
}
emailIntent.putExtra(Intent.EXTRA_STREAM, path);
emailIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
// Let user pick client
try {
startActivityForResult(Intent.createChooser(emailIntent, "Send eMail..."),
SEND_EMAIL_ACTIVITY);
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show();
sightingsCursor.close();
return;
}
答案 0 :(得分:-1)
如何在发送电子邮件之前删除旧文件,例如在onCreate或临时删除文件(如果日期不相同)?在应用程序启动时