短信发送后返回onActivityResult

时间:2017-06-01 19:50:26

标签: android android-intent onactivityresult android-sms

我希望为用户填充SMS意图,然后启动意图并在发送SMS后返回我的应用程序继续执行代码。所以到目前为止我用它来设置Intent:

 Uri uri = Uri.parse("smsto:" + cellNumberEditText.getText().toString());
 Intent smsIntent = new Intent(Intent.ACTION_SENDTO, uri);
 smsIntent.putExtra("sms_body", smsMessageEditText.getText().toString());
 smsIntent.putExtra("exit_on_sent", true);
 startActivityForResult(smsIntent,1);

注意我将额外的exit_on_sent参数添加到意图中。

然后当然我抓住了onActivityResult

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == 1)
    {
        //Do some post sending work
    }
}

问题是,在调试之后,我注意到一旦意图启动,onActivityResult立即触发,而不是在意图关闭之后触发。此外,即使设置了参数,SMS应用程序也不会在发送后关闭。我甚至在我的Manifest.xml中添加了android:launchMode="singleInstance"。我错过了什么?

1 个答案:

答案 0 :(得分:-1)

您应在所请求的活动中添加setResult(Activity.RESULT_OK, data);finish();。最新返回请求者活动。