Android 安卓:附件到电子邮件应用程序后,何时删除文件?
我的应用程序在临时存储器中创建一个文件,并向其中写入一些数据Android 安卓:附件到电子邮件应用程序后,何时删除文件?,android,Android,我的应用程序在临时存储器中创建一个文件,并向其中写入一些数据 exportFile = new File(this.getFilesDir(), filename); 然后允许用户选择一个电子邮件程序来附加和发送文件 exportFile.delete(); 我开始一项活动以获得结果 startActivityForResult(Intent.createChooser(emailIntent, "Send eMail..."), SEND_EMAIL_ACTIVITY); 在onActi
exportFile = new File(this.getFilesDir(), filename);
然后允许用户选择一个电子邮件程序来附加和发送文件
exportFile.delete();
我开始一项活动以获得结果
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;
}
您是如何构建您的
emailIntent
?我已将此代码添加到我的帖子中。THX您使用哪个电子邮件客户端进行测试?我一直在用虚拟设备和GMail应用程序进行测试。