Android项目实战(六十六):ActivityResultContract
startActivityForResult,onActivityResult 的进阶写法
定义一个自定义ActivityResultContract
public class CommonIntentContract extends ActivityResultContract<Intent, Intent> { @NonNull @Override public Intent createIntent(@NonNull Context context, Intent input) { return input; } @Override public Intent parseResult(int resultCode, @Nullable Intent intent) { return intent; } }
使用
// 开启下一页 传入Intent
launcher.launch(new Intent(this, MActivity.class)
.putExtra(StaticGather.DATA, "abc"));
// 结果回调 result为Intent
private final ActivityResultLauncher<Intent> launcher = registerForActivityResult(new CommonIntentContract(), result -> { });
传入参数和回调参数皆可自定义类
作者:听着music睡
出处:http://www.cnblogs.com/xqxacm/
Android交流群:38197636
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。