首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何取消从startActivityForResult调用的Intent

从Android 11开始,startActivityForResult方法已被弃用,推荐使用registerForActivityResult方法来处理Activity结果。下面是取消从startActivityForResult调用的Intent的步骤:

  1. 在调用startActivityForResult方法的Activity中,重写onActivityResult方法。这个方法会在子Activity结束后被调用,用于处理返回的结果。
  2. 在子Activity中,当需要取消Intent时,可以调用finish方法来结束当前Activity,并传递一个取消的结果码。
  3. 在调用startActivityForResult方法的Activity的onActivityResult方法中,根据返回的结果码判断是否为取消操作,如果是取消操作,则不做任何处理;如果是其他操作,则根据需要进行相应的处理。

以下是一个示例代码:

在调用startActivityForResult方法的Activity中:

代码语言:java
复制
private static final int REQUEST_CODE = 1;

// 启动子Activity
Intent intent = new Intent(this, ChildActivity.class);
startActivityForResult(intent, REQUEST_CODE);

// 处理子Activity返回的结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    
    if (requestCode == REQUEST_CODE) {
        if (resultCode == RESULT_CANCELED) {
            // 取消操作,不做任何处理
        } else {
            // 其他操作,根据需要进行处理
        }
    }
}

在子Activity中:

代码语言:java
复制
// 取消Intent操作
Intent intent = new Intent();
setResult(RESULT_CANCELED, intent);
finish();

这样,当子Activity调用finish方法结束时,会回调调用startActivityForResult方法的Activity的onActivityResult方法,并根据返回的结果码进行相应的处理。

腾讯云相关产品和产品介绍链接地址:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券