我目前正在开发一个可以发送短信和电子邮件的应用程序。 没什么大不了的,这很容易做到。 以下是我发送短信的方式:
private void sendSms() {
Log.i("", "SEND SMS");
Intent intent = new Intent(Intent.ACTION_VIEW,
Uri.parse("sms:123456789"));
intent.putExtra("sms_body", "My message");
startActivity( intent );
}
以下是我发送电子邮件的代码:
private void sendEmail() {
Log.i("", "SEND");
Intent email = new Intent(Intent.ACTION_SEND);
email.putExtra(Intent.EXTRA_EMAIL, "address@fuu.com");
email.putExtra(Intent.EXTRA_SUBJECT, "Subject");
email.putExtra(Intent.EXTRA_TEXT, "My body email");
email.setType("message/rfc822");
startActivity(Intent.createChooser(email, "Send an email:"));
}
独立地,那些工作很棒。
但是我想在发送或取消短信后发送电子邮件。
我找不到如何取回发送电子邮件的SMS intent/activity
的关闭事件。
有什么想法吗?
答案 0 :(得分:2)
在开始此类活动时,您应该使用startActivityForResult。
然后,您可以通过实施onActivityResult方法
来获取已启动活动的结果流程将类似于以下内容
1)startActivityForResult(SEND_SMS_INTENT,SEND_SMS_REQUEST_CODE)其中SEND_SMS_REQUEST_CODE是由您定义的整数常量
2)发送短信活动完成(取消或完成它的工作)
3)onActivityResult将使用SEND_SMS_REQUEST_CODE调用您的主机活动。
4)然后你可以做if(requestCode == SEND_SMS_REQUEST_CODE)sendEmail();
您可以为发送电子邮件活动执行相同的操作。
如果您有兴趣知道子活动结果是什么(即:发送短信取消或实际发送),您可以使用onActivityResult resultCode参数。