如何解决将具有多个方法的侦听器传递给从jni cpp到java的java方法
我想使用多种方法将回调侦听器传递给Java。我仅使用一种方法成功调用了回调,但是我遇到了传递多个方法的问题。
所以我在Java方面的接口是:
public interface IAdListener {
void onLoaded();
void onFailed(String error);
void onOpened();
void onClick(String action);
void onClosed();
}
当我不想创建侦听器的实例时,我将调用以下方法:
jstring iAdListenerClass = env->NewStringUTF("com.wappier.wappierSDK.api.IAdListener");
jobject joIAdListener = env->CallStaticObjectMethod(proxyClass,buildProxy,iAdListenerClass,.....);
并且我必须以某种方式传递以下已定义的回调
typedef void(*WPAdContentOnLoadCallBack)();
typedef void(*WPAdContentOnFailedCallBack)(const char* error) ;
typedef void(*WPAdContentOnOpenedCallBack)();
typedef void(*WPAdContentOnClickCallBack)(const char* action);
typedef void(*WPAdContentOnClosedCallBack)();
最后,要能够调用java方法:
env->CallVoidMethod(wappierInstance,showAdMethod,jobjectIAppOptionsItem,joIAdListener);
public void showAd(IAppOptions iAppOptions,IAdListener iAdListener)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。