【问题标题】:Android: How to delete email drafts from app?Android:如何从应用程序中删除电子邮件草稿?
【发布时间】:2016-07-08 21:36:35
【问题描述】:

我正在编写一个用于发送电子邮件的小应用程序。 我可以使用打开默认电子邮件应用程序的意图发送电子邮件。

我为此编写的代码运行良好,如下所示:

private void sendMe(String address, String subject, String emailBody){

    String uriText =
            "mailto:" + address +
                    "?subject=" + Uri.encode(subject) +
                    "&body=" + Uri.encode(emailBody);

    Uri uri = Uri.parse(uriText);

    Intent sendIntent = new Intent(Intent.ACTION_SENDTO);
    sendIntent.setData(uri);
    startActivity(Intent.createChooser(sendIntent, "Send email"));

    emailBody = "";
}

但是,如果我一个接一个地发送两封电子邮件并通过 Android 电子邮件应用程序 GUI 删除草稿,如果我尝试使用我的应用程序发送第二封电子邮件,前一封电子邮件的正文将保留在第二封电子邮件中。

是否有从电子邮件应用程序中删除现有电子邮件文本的现有解决方案,或者我是否需要使用单独的电子邮件客户端库来执行此操作?

【问题讨论】:

    标签: android email


    【解决方案1】:

    是否有从电子邮件应用程序中删除现有电子邮件文本的现有解决方案

    有数百甚至数千种适用于 Android 的电子邮件应用程序。这包括预安装的应用程序和用户从 Play 商店或其他分发渠道安装的应用程序。每个应用程序的行为取决于这些应用程序的开发人员。值得注意的是,没有人需要支持电子邮件草稿,更不用说让外部各方控制此类草稿了。

    您的工作是确保在请求中输入正确的文本。例如,源代码中的 emailBody = "" 语句毫无意义。只要您的请求包含所需的信息,之后的一切都取决于其他应用的开发人员和用户。

    【讨论】:

    • 很高兴知道。我想我要重新考虑我这样做的方式了。
    【解决方案2】:

    这通常是由于您的电子邮件客户端/应用程序设置将草稿保存到服务器造成的。更改设置以在本地保存草稿,所有已保存的部分副本都应停止。

    【讨论】:

      【解决方案3】:

      我想通了。

      我怀疑这个问题与 Android 电子邮件应用程序中的草稿支持无关,它与我自己的 emailBody 字符串在将意图发送到 android 电子邮件应用程序之前没有被删除有关。我的变量和意图包含发送到应用程序的多封电子邮件的正文。

      我移动了 emailBody = "";到另一个线程并确保它在发送意图之前执行。

      【讨论】:

        猜你喜欢
        • 2019-06-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多