当我使用以下方法启动SMS应用程序时 - 一切正常,直到发送消息为止。当我发送消息时 - 除非我按下后退按钮,否则它永远不会导航回原始活动。如何启动SMS活动,然后在发送消息后再次显示父活动?
这就是我将SMS应用程序称为结果的方式。
String message = getMessageString();
Intent sendIntent = new Intent(Intent.ACTION_SENDTO);
sendIntent.setData(Uri.parse("sms:" + number));
sendIntent.putExtra("sms_body", message);
startActivityForResult(sendIntent, INVITE_COMPLETED);
答案 0 :(得分:24)
有可能。只需要为你的意图添加以下额外内容:
sendIntent.putExtra("exit_on_sent", true);
答案 1 :(得分:1)
一旦您启动的活动完成,就会调用第一个活动中的onActivityResult()方法。这就是为什么你应该在你的第一个活动中覆盖onActivityResult()并处理完成的活动。
答案 2 :(得分:1)
你错了,也许你可能没有注意到你已经回到了调用活动。在调用子活动时,您必须提供请求代码。 INVITE_COMPLETED听起来有点像它可以代表结果代码。结果代码如RESULT_OK和RESULT_CANCELED是Activity类的预定义决赛。 如果你使用
startActivityForResult(intent, MY_REQUEST_CODE);
然后您可以覆盖onActivityResult()并捕获该请求代码(在启动活动中自定义)。这就是它的样子:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == MY_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
// do something useful
}
}
}