前提:
需要使用支持更高gcc版本的第三方NDK包。Android默认版本为:4.4.3。
第三方NDK包下载(gcc-4.6.3):http://www.crystax.net/en/android/ndk/7
具体使用注意事项请参考此文。本测试主要展示以下内容:
1、使用std::function和std::bind实现sigslot机制;2、使用C++11的Lambda表达式
3、在C++代码中回调Java对象的方法
例子来源:
本测试例子来自网上的一个讨论里的回复,由于看到有lambda表达式,就有了在iOS及Android环境下测试的念头。
http://stackoverflow.com/questions/12516239/a-simple-signal-for-a-button-in-c
主要代码片段:
定义回调类型typedef std::function<void(const char *)> callback_t;
定义一个全局回调函数指针,以方便GenericButton类内调用,初始化见下面的代码。
callback_t jni_callback;
导出