在Android中完成操作后返回活动状态?

时间:2010-07-30 21:42:03

标签: android sms

当我使用以下方法启动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);

3 个答案:

答案 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
        }
    }
}