android - 短信发送后返回onActivityResult

标签 android android-intent onactivityresult android-sms

我想为用户填充一个 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);

请注意,我将额外的 exit_on_sent 参数添加到 intent。

然后当然我捕获了 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 关闭之后。此外,即使设置了参数,SMS 应用程序在发送后也不会关闭。我什至将 android:launchMode="singleInstance" 添加到我的 Manifest.xml 中。我错过了什么?

最佳答案

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

关于android - 短信发送后返回onActivityResult,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44315981/

相关文章:

java - 如何点击Android中的Recyclerview并获取另一个像play store这样的数据Activity?

java - 使用传递的字符串调用资源

Android 相机 Intent 在某些设备上不起作用

android - exoplayer android 中的时间栏问题

java - 将 String 转换为 double 时 GSON 中的 NumberFormatException

java - LIBGDX - 如何使乒乓球游戏中的 Racket 不跳跃?

android - 查看状态在 onActivityResult 和 onResume 之间丢失

java - 从 recyclerview 适配器调用 Activity 方法

android - 通过辅助功能服务从通知获取 Intent - Android

java - onBackPressed() 无法使 MainActivity 重新加载