从Android 11开始,startActivityForResult方法已被弃用,推荐使用registerForActivityResult方法来处理Activity结果。下面是取消从startActivityForResult调用的Intent的步骤:
以下是一个示例代码:
在调用startActivityForResult方法的Activity中:
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中:
// 取消Intent操作
Intent intent = new Intent();
setResult(RESULT_CANCELED, intent);
finish();
这样,当子Activity调用finish方法结束时,会回调调用startActivityForResult方法的Activity的onActivityResult方法,并根据返回的结果码进行相应的处理。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云