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