bind_proxy_handler

Function bind_proxy_handler 

Source
pub fn bind_proxy_handler(
    proxy: &GlobalRef,
    handler: impl Fn(&mut JNIEnv<'_>, &JObject<'_>, &JObjectArray<'_>) -> Result<GlobalRef> + Send + Sync + 'static,
)
Expand description

java动态代理绑定rust函数。

§Arguments

  • proxy: 代理对象。
  • handler: 一个处理函数。

returns: ()

§示例

use droid_wrap_utils::{bind_proxy_handler, new_proxy, vm_attach};
let proxy = new_proxy(&["java.lang.Runnable"]).unwrap();
bind_proxy_handler(&proxy, |mut env, method, args| {
    let name = env.call_method(&method, "getName", "()Ljava/lang/String;", &[])?.l()?;
    let name = env.get_string((&name).into())?;
    println!("Method `{}` is called with proxy.", name.to_str()?);
    droid_wrap_utils::null_value(env)
});
let mut env = vm_attach().unwrap();
env.call_method(&proxy, "run", "()V", &[]).unwrap();