接口 XposedInterface.Chain

封闭接口:
XposedInterface

public static interface XposedInterface.Chain
方法或构造函数的拦截器链(Interceptor Chain)。Chain 对象不能在多个线程之间共享,也不能在 XposedInterface.Hooker.intercept(Chain) 结束后重复使用。
  • 方法概要

    修饰符和类型
    方法
    说明
    getArg(int index)
    获取指定索引处的参数。
    获取参数列表。
    获取当前被 Hook 的方法 / 构造函数。
    获取调用时的 this 指针;如果是 static 方法则返回 null
    使用相同的参数和 this 指针继续执行链中的下一个拦截器。
    proceed(Object[] args)
    使用给定的参数以及相同的 this 指针,继续执行链中的下一个拦截器。
    proceedWith(Object thisObject)
    使用相同的参数以及给定的 this 指针,继续执行链中的下一个拦截器。
    proceedWith(Object thisObject, Object[] args)
    使用给定的参数和 this 指针,继续执行链中的下一个拦截器。
  • 方法详细资料

    • getExecutable

      @NonNull Executable getExecutable()
      获取当前被 Hook 的方法 / 构造函数。
    • getThisObject

      Object getThisObject()
      获取调用时的 this 指针;如果是 static 方法则返回 null
    • getArgs

      @NonNull List<Object> getArgs()
      获取参数列表。返回的列表是不可变的。 如果需要修改参数,应调用 proceed(Object...)proceedWith(Object, Object...) 并传入新的参数。
    • getArg

      获取指定索引处的参数。
      参数:
      index - 参数索引
      返回:
      指定索引处的参数
      抛出:
      IndexOutOfBoundsException - 如果索引越界
      ClassCastException - 如果参数无法转换为期望类型
    • proceed

      Object proceed() throws Throwable
      使用相同的参数和 this 指针继续执行链中的下一个拦截器。
      返回:
      下一个拦截器的返回结果;如果当前拦截器是链中的最后一个,则返回原始可执行方法的结果。

      对于 void 方法和构造函数,始终返回 null

      抛出:
      Throwable - 如果任意拦截器或原始方法抛出异常
    • proceed

      Object proceed(@NonNull Object[] args) throws Throwable
      使用给定的参数以及相同的 this 指针,继续执行链中的下一个拦截器。
      参数:
      args - 调用所使用的参数
      返回:
      下一个拦截器的返回结果;如果当前拦截器是链中的最后一个,则返回原始可执行方法的结果。

      对于 void 方法和构造函数,始终返回 null

      抛出:
      Throwable - 如果任意拦截器或原始方法抛出异常
    • proceedWith

      Object proceedWith(@NonNull Object thisObject) throws Throwable
      使用相同的参数以及给定的 this 指针,继续执行链中的下一个拦截器。 静态方法的拦截器不应调用此方法。
      参数:
      thisObject - 本次调用的 this 指针
      返回:
      下一个拦截器的返回结果;如果当前拦截器是链中的最后一个,则返回原始可执行方法的结果。

      对于 void 方法和构造函数,始终返回 null

      抛出:
      Throwable - 如果任意拦截器或原始方法抛出异常
    • proceedWith

      Object proceedWith(@NonNull Object thisObject, @NonNull Object[] args) throws Throwable
      使用给定的参数和 this 指针,继续执行链中的下一个拦截器。 静态方法的拦截器不应调用此方法。
      参数:
      thisObject - 本次调用的 this 指针
      args - 本次调用所使用的参数
      返回:
      下一个拦截器的返回结果;如果当前拦截器是链中的最后一个,则返回原始可执行方法的结果。

      对于 void 方法和构造函数,始终返回 null

      抛出:
      Throwable - 如果任意拦截器或原始方法抛出异常