下面的代码是我目前用于列表视图项目的代码,这样当我点击它时,电子邮件编辑器就会启动。但是在发送消息后,它并没有带我回到我的应用程序。如何在发送电子邮件后将其返回到我的应用程序?如果有人有更好的方法,请告诉我。
感谢所有帮助。
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 (android.content.ActivityNotFoundException ex) {
Toast.makeText(MainActivity.this,
"There is no email client installed.", Toast.LENGTH_SHORT).show();
}
}
答案 0 :(得分:3)
您的代码不使用javamail API,而是使用用户设备上安装的电子邮件客户端之一。因此,这将导致用户选择意图的EXTRA_TEXT部分中指定的邮件。从这一部分;
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()甚至onDetach()方法,如果用户在他的设备上配置某个选项以获得最低功耗。
答案 1 :(得分:2)
从电子邮件意图开始新活动后,您不应该立即完成活动。请删除finish()调用,这应该可以解决您的问题。发送电子邮件后,电子邮件活动将被销毁,并且应显示您之前的活动。
答案 2 :(得分:1)
您的应用程序退出是因为您在try {...}中调用的finish()方法将在执行代码之后立即停止活动。删除或注释finish()方法来解决这个问题。