AvoidOnResult

Introduction: Avoid using onActivityResult () to improve code readability
More: Author   ReportBugs   
Tags:

原理讲解文章:避免使用 onActivityResult,以提高代码可读性

配合 AOP 的实践文章:一个注解搞定登录注册、实名认证及购买 vip 等业务流程

  • 无需重写 onActivityResult,以回调的方式拿到 startActivityForResult 的结果,解决了以往跳转页面和处理结果分离的痛点。

  • 同时无需重写 onActivityResult 也意味着只要你可以拿到一个 Activity 实例,就可以通过它 startActivityForResult,甚至它是一个第三方库中的 Activity 也一样。

  • 支持 RxJava 方式调用

Setup

  1. in your root build.gradle

     allprojects {
         repositories {
             ...
             maven { url 'https://jitpack.io' }
         }
     }
    
  2. add to dependencies

     dependencies {
             implementation 'com.github.AnotherJack:AvoidOnResult:1.0.0'
     }
    

Usage

  • callback 方式

      new AvoidOnResult(activity).startForResult(XXActivity.class, new AvoidOnResult.Callback() {
              @Override
              public void onActivityResult(int resultCode, Intent data) {
                  if (resultCode == Activity.RESULT_OK){
                      // get your data from intent
    
                  }else {
    
                  }
              }
          });
    
  • rxjava 方式

      new AvoidOnResult(activity).startForResult(MainActivity.class)
                  //可自由变换
                  .filter(new Predicate<ActivityResultInfo>() {
                      @Override
                      public boolean test(ActivityResultInfo activityResultInfo) throws Exception {
                          return activityResultInfo.getResultCode() == Activity.RESULT_OK;
                      }
                  })
                  .subscribe(new Observer<ActivityResultInfo>() {
                      @Override
                      public void onSubscribe(Disposable d) {
    
                      }
    
                      @Override
                      public void onNext(ActivityResultInfo activityResultInfo) {
    
                      }
    
                      @Override
                      public void onError(Throwable e) {
    
                      }
    
                      @Override
                      public void onComplete() {
    
                      }
                  });
    

如果对你有所帮助,给个 star 吧

Apps
About Me
GitHub: Trinea
Facebook: Dev Tools