从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方法,并根据返回的结果码进行相应的处理。
腾讯云相关产品和产品介绍链接地址:
小程序云开发官方直播课(应用开发实战)
腾讯云存储知识小课堂
腾讯位置服务技术沙龙
云+社区沙龙online [技术应变力]
云+社区技术沙龙[第10期]
高校公开课
北极星训练营
停课不停学 腾讯教育在行动第二期
云+社区技术沙龙[第15期]
领取专属 10元无门槛券
手把手带您无忧上云