在新的Android版本中,建议使用startActivity和registerForActivityResult来代替startActivityForResult。具体使用方法如下:

  1. 使用startActivity启动Activity:
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
  1. 在调用startActivity之前,使用registerForActivityResult注册一个ActivityResultCallback回调:
ActivityResultLauncher<Intent> launcher = registerForActivityResult(
        new ActivityResultContracts.StartActivityForResult(),
        result -> {
            if (result.getResultCode() == Activity.RESULT_OK) {
                //处理返回结果
            }
        });
  1. 在需要接收返回结果的地方,使用launcher.launch()方法启动Activity:
Intent intent = new Intent(this, SecondActivity.class);
launcher.launch(intent);
  1. 在SecondActivity中,通过setResult方法返回结果:
Intent intent = new Intent();
intent.putExtra("key", "value");
setResult(Activity.RESULT_OK, intent);
finish();
``
startActivityForResult被废弃了该用什么代替

原文地址: https://www.cveoy.top/t/topic/cqSz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录