0

我想在邮件成功发送到 Receiver 后从 SD 卡中删除文件。如何执行此操作?我在 SO 和 Google 上发现了很多内容。我也试过了。我的代码如下:

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

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

4

3 回答 3

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();
            }
        }   
    }
于 2012-12-14T04:27:27.237 回答
0

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

受保护的无效 onResume() {

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

这里的文件路径是外部存储的路径或者你保存文件的位置,你想删除它。

于 2013-08-12T07:33:53.503 回答
0
  file.deleteOnExit();

当活动关闭时,它将删除您的文件。检查这个

或者

使用Alarmmanager 并设置一个时间在适当的时间后删除您的文件,可以说在一小时或半小时后。

于 2012-12-14T04:26:57.063 回答