当前位置:   article > 正文

startActivityForResult()方法被弃用_startactivityforresult弃用怎么解决

startactivityforresult弃用怎么解决

一、现象

在新版androidX里面,startActivityForResult()被标注弃用,推荐使用registerForActivityResult()方法

二、解决方案 :

 使用registerForActivityResult()方法

但是注意了:

1、registerForActivityResult只能在onCreate()中初始化注册。onstart()之后就不能注册了。

2、registerForActivityResult()方法不要放在setOnClickListener()里面,要放在onCreate里。

使用如图

  1. private ActivityResultLauncher launcher;
  2. public void initActivityResult() {
  3. launcher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
  4. @Override
  5. public void onActivityResult(ActivityResult result) {
  6. if (result.getResultCode() == RESULT_OK) {
  7. Logger.d("onActivityResult: data = " + result.getData());
  8. }
  9. }
  10. });
  11. }
  12. //跳转调用
  13. Intent intent = new Intent(this, BaiduASRDigitalDialog.class);
  14. // running = true;
  15. launcher.launch(intent);

三、关于registerForActivityResult()方法

两个参数:

      第一个是 ActivityResultContract

      第二个是 ActivityResultCallback

返回值:

    它返回一个 ActivityResultLauncher 对象

     用法:调用 ActivityResultLauncher的 launch方法可以跳转到另一个Activity或者发起权限请求

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/886498
推荐阅读
相关标签
  

闽ICP备14008679号