今天,简单讲讲android的jni如何使用jni回调java函数。
之前,我写了部分jni的博客,讲的都是如何从android的java代码调用jni的函数。最近,需要做一个新的功能,在jni的C函数里,需要开一个线程,不停回调java的函数。开始查了很多资料,最终是完成了效果。这里记录一下。
需要调用的java的函数:
/** * * @param datas * @param dataSize * @param sync_code * @param frametype * @param frameno * @param channel * @param tv_sec * @param tv_msec */ public void decodeData(byte[] datas, int dataSize ,int sync_code,int frametype,int frameno,int channel,int tv_sec,int tv_msec,int hStream) { }
二.在jni里首先进行回调java函数:
1.首先定义一个保存变量的结构体。
//记录类相关的信息 typedef struct ClassInfo { JavaVM *jvm; //保存