有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

发送电子邮件后返回应用程序

下面的代码是我当前用于列表视图项目的代码,因此当我点击它时,电子邮件生成器将启动。但是,在发送消息后,它不会将我带回我的应用程序。在发送电子邮件后,我如何将其返回到我的应用程序?如果有人有更好的方法,请告诉我

感谢所有的帮助

if(position == 7) {
Log.i("Send email", "");

String[] TO = {"person@gmail.com"};
Intent emailIntent = new Intent(Intent.ACTION_SEND);
emailIntent.setData(Uri.parse("mailto:person@gmail.com"));
emailIntent.setType("text/plain");


emailIntent.putExtra(Intent.EXTRA_EMAIL, TO);
emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Your subject");
emailIntent.putExtra(Intent.EXTRA_TEXT, "Email message goes here");

try {
    startActivity(Intent.createChooser(emailIntent, "Send mail..."));
    finish();
    Log.i("Finished sending email...", "");
} catch (安卓.content.ActivityNotFoundException ex) {
    Toast.makeText(MainActivity.this,
            "There is no email client installed.", Toast.LENGTH_SHORT).show();
}
}

共 (3) 个答案

  1. # 1 楼答案

    您的代码不使用javamail API,而是使用安装在用户设备上的一个电子邮件客户端。因此,这将导致用户选择一个并结束在意图的额外文本部分中指定的邮件。从这一部分

    try {
                        startActivity(Intent.createChooser(emailIntent, "Send mail..."));
                        finish();
                        Log.i("Finished sending email...", "");
                    } catch (android.content.ActivityNotFoundException ex) {
                        Toast.makeText(MainActivity.this,
                                "There is no email client installed.", Toast.LENGTH_SHORT).show();
                    }
    

    只需从代码中删除“finish()”方法。这将导致用户在处理邮件时点击后退按钮后返回应用程序。如果用户在其设备上配置了某个选项以降低功耗,则finish()方法会导致活动结束调用onStop()甚至ondeach()方法

  2. # 2 楼答案

    应用程序退出,因为您在try{…}中调用的finish()方法将在执行之前的代码后立即停止活动。删除或注释finish()方法以解决此问题

  3. # 3 楼答案

    您不应该在通过电子邮件开始新活动后立即完成活动。请删除finish()调用,这将解决您的问题。发送电子邮件后,电子邮件活动将被销毁,并显示您以前的活动