startActivityForResult();

时间:2011-09-19 16:07:21

标签: android

Intent emailSend = new Intent(android.content.Intent.ACTION_SEND);
        emailSend.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"tonikg90@gmail.com"});
        emailSend.putExtra(android.content.Intent.EXTRA_SUBJECT, "Item Best Seller");


        emailSend.putExtra(android.content.Intent.EXTRA_TEXT, map1.toString());
        emailSend.setType("text/plain");

        //startActivity(Intent.createChooser(emailSend, "Send Email..."));

        setResult(RESULT_OK, emailSend); 
        finish();
        break;

点击发送电子邮件按钮后,它应该转到电子邮件服务。但它立即回到第一个活动。如何将其发送到邮件服务,点击“发送”后,它返回到第一个活动,同时Toast说“已发送电子邮件”

1 个答案:

答案 0 :(得分:4)

首先,从startActivityForResult方法中删除评论。请记住:start活动是异步工作的,因此在您使用startActivityForResult之后,setResultfinish将被执行。

您需要做的是实施onActivityResult方法,并将setResultfinish移到那里。电子邮件发送后,系统会调用onActivityResult,因此会返回您的主要活动。