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应用程序进行测试。