Android 邮件发送成功后如何从SD卡中删除文件?

Android 邮件发送成功后如何从SD卡中删除文件?,android,android-intent,Android,Android Intent,邮件成功发送到收件人后,我想从SD卡中删除文件。如何执行此操作?我在SO和Google上都找到了很多。我也尝试了。我的代码如下: if(myFile.exists()) myFile.delete(); 使用以上代码,我删除了存储在SD卡中的文件,然后将其发送到接收方。请有人帮助我解决此问题。提前感谢 file.deleteOnExit(); 活动将关闭时,它将删除您的文件 或 使用Alarmmanager并设置一个时间,以便在适当的时间后(比如一小时或半小时后)删除您的文件。如

邮件成功发送到收件人后,我想从SD卡中删除文件。如何执行此操作?我在SO和Google上都找到了很多。我也尝试了。我的代码如下:

if(myFile.exists())
    myFile.delete();
使用以上代码,我删除了存储在SD卡中的文件,然后将其发送到接收方。请有人帮助我解决此问题。提前感谢

  file.deleteOnExit();
活动将关闭时,它将删除您的文件


使用Alarmmanager并设置一个时间,以便在适当的时间后(比如一小时或半小时后)删除您的文件。

如果您在ActivityResult上收到邮件发送状态,请使用
startActivityForResult

下面是示例代码

发送邮件:

int EMAIL = 101;

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("text/html");

emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,new String[]{});
emailIntent.putExtra(android.content.Intent.EXTRA_BCC,new String[]{});
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
emailIntent.putExtra(android.content.Intent.EXTRA_STREAM, pngUri);
startActivityForResult(emailIntent,EMAIL);
protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        // TODO Auto-generated method stub
        if(requestCode==EMAIL)
        {
            if(requestCode==EMAIL && resultCode==Activity.RESULT_OK)    
            {
                            if(myFile.exists())
                                myFile.delete();  
                Toast.makeText(mActivity, "Mail sent.", Toast.LENGTH_SHORT).show();
            }
            else if (requestCode==EMAIL && resultCode==Activity.RESULT_CANCELED)
            {
                Toast.makeText(mActivity, "Mail canceled.", Toast.LENGTH_SHORT).show();
            }
            else 
            {
                Toast.makeText(mActivity, "Please try again.", Toast.LENGTH_SHORT).show();
            }
        }   
    }
发送结果:

int EMAIL = 101;

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND);
emailIntent.setType("text/html");

emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL,new String[]{});
emailIntent.putExtra(android.content.Intent.EXTRA_BCC,new String[]{});
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject);
emailIntent.putExtra(android.content.Intent.EXTRA_STREAM, pngUri);
startActivityForResult(emailIntent,EMAIL);
protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        // TODO Auto-generated method stub
        if(requestCode==EMAIL)
        {
            if(requestCode==EMAIL && resultCode==Activity.RESULT_OK)    
            {
                            if(myFile.exists())
                                myFile.delete();  
                Toast.makeText(mActivity, "Mail sent.", Toast.LENGTH_SHORT).show();
            }
            else if (requestCode==EMAIL && resultCode==Activity.RESULT_CANCELED)
            {
                Toast.makeText(mActivity, "Mail canceled.", Toast.LENGTH_SHORT).show();
            }
            else 
            {
                Toast.makeText(mActivity, "Please try again.", Toast.LENGTH_SHORT).show();
            }
        }   
    }

当您根据活动生命周期打开e邮箱时,您当前的活动将在暂停时移动(),当您返回活动时,on Resume方法将调用,因此请在on Resume方法上编写blow代码

受保护的void onResume(){


此处filepath是外部存储的路径或您保存文件的位置,您希望删除该文件。

此代码存在哪些问题?请详细说明。在发送邮件后执行此代码。当我编写此代码时,它将在将文件附加到邮件之前从sd卡中删除该文件。我希望在M之后删除存储在sd卡中的文件邮件成功发送到接收方。有什么建议吗?@Robinhood:这给了我同样的问题。我之前已经尝试过。每次在这种情况下,它都会发送给我,我不知道为什么?f(requestCode==电子邮件和resultCode==活动。结果\u取消){Toast.makeText(mActivity,“邮件取消”,Toast.LENGTH\u SHORT).show();}else{Toast.makeText(mActivity,“请再试一次”),Toast.LENGTH_SHORT.show()}这意味着你的邮件未成功发送实际上,当我仅使用startActivity发送邮件时,它成功发送。当我使用startActivity时,它成功发送。结果它在那种情况下发送。我不知道为什么?]int EMail=101的含义是什么?101是请求代码,你可以使用任何整数,,,,receiver receiving mail?