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

时间:2012-12-14 04:17:21

标签: android android-intent

我想从SD卡中删除文件邮件成功发送到Receiver之后。如何做到这一点?我在SO和Google上发现了很多。我也试过。我的代码是:

if(myFile.exists())
    myFile.delete();

使用上面的代码我删除存储在SD卡中的文件,然后再发送到接收方。请有人帮我解决这个问题。谢谢你。

3 个答案:

答案 0 :(得分:1)

您在onActivityResult上收到邮件发送状态,因此请使用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();
            }
        }   
    }

答案 1 :(得分:0)

  file.deleteOnExit();

当活动结束时,它会删除您的文件。 check this

或者

使用Alarmmanager并在适当的时间后设置一次删除文件,让我们说一小时或半小时后。

答案 2 :(得分:0)

当您根据活动生命周期打开电子邮箱时,当您在活动中返回时,当前活动将继续onPause(),然后On Resume方法将调用,因此请在您的on Resume方法上写下打击代码。

protected void onResume(){

    File file= new File(filepath);
    if(file.exists())
    {
         file.delete();
    }
    super.onResume();
}

此处文件路径是外部存储路径或您要删除文件的位置。