短信发送后返回onActivityResult
Posted
技术标签:
【中文标题】短信发送后返回onActivityResult【英文标题】:Return to onActivityResult after SMS send 【发布时间】:2017-11-03 02:25:11 【问题描述】:我想为用户填充 SMS Intent,然后启动 Intent 并在 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);
注意,我在意图中添加了 Extra 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
问题是,在调试之后,我注意到一旦 Intent 启动,onActivityResult
就会立即触发,而不是在 Intent 关闭后触发。此外,即使设置了参数,短信应用程序在发送后也不会关闭。我什至在我的 Manifest.xml 中添加了android:launchMode="singleInstance"
。我错过了什么?
【问题讨论】:
希望这个对你有帮助link 【参考方案1】:您应该在请求的活动中添加setResult(Activity.RESULT_OK, data);
和finish();
。最新返回请求者活动。
【讨论】:
我该怎么做?我启动的 SMS 意图已从我这边关闭,我无法更改它使用的代码?如果我发起了一项我自己创建的活动,那将是可能的 我是这样找到的:String number = "12346556"; // The number on which you want to send SMS startActivity(new Intent(Intent.ACTION_VIEW, Uri.fromParts("sms", number, null)));
以上是关于短信发送后返回onActivityResult的主要内容,如果未能解决你的问题,请参考以下文章