gpt4 book ai didi

android - 如何删除文件

转载 作者:行者123 更新时间:2023-11-29 01:48:34 24 4
gpt4 key购买 nike

我正在开发一个小应用程序,您可以在其中发送带有文件附件的电子邮件。发送电子邮件时,必须删除该文件。我使用 startActivityForResult(emailIntent) 启动电子邮件 Intent ,并在 onActivityResult() 中捕获响应。问题是 onActionResult() 在我按下电子邮件客户端中的发送按钮后立即被调用,而不是在电子邮件实际发送时被调用。我还了解到 ACTION_SEND 不是为您设计的 startActivityForResult()。所以问题是什么时候/如何删除文件?我在想我可以运行一个 Thread,它会检查该文件是否未被任何其他进程使用,然后将其删除。问题可能是当应用程序被销毁时,线程被销毁并且文件永远不会被删除。那么运行某种 Service 会等到文件可以被删除然后自行终止呢?什么是最好的解决方案?

最佳答案

When the email is sent, the file has to be deleted.

这不太可能,因为您无法知道文件何时发送。

I start the email intent using startActivityForResult(emailIntent) and catch the response in onActivityResult().

ACTION_SEND 不是为与 startActivityForResult() 一起使用而设计的,即使是,也不能保证 onActivityResult()被称为电子邮件已实际发送。您无法知道电子邮件是否已发送。例如,电子邮件客户端可能只是将要发送的电子邮件排队,因为没有 Internet 连接,或者电子邮件的设置被设置为分批发送电子邮件,等等。

So the question is when/how to delete the file?

等待 24 小时,然后删除它,并希望邮件在该时间段内发送。

I was thinking that I can run a Thread, that will check whether the file is not used by any other process and then, delete it.

您正在对其他应用的实现做出假设。当您碰巧认为应该打开文件时,第三方电子邮件应用程序无需打开您的文件。

So what about running some kind of Service that will wait until file can be deleted and then kill itself.

同样,您无法真正知道何时可以删除文件。 24 小时是一个猜测;可以想象,电子邮件可能仍在排队,并且其他应用程序可能仍需要附件。但是,基于时间的策略是您可以做出的最不无效的假设,它还使用户更容易配置文件在您删除之前保留多长时间。

关于android - 如何删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19876278/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com