超时后的CPP呼叫功能

时间:2012-08-17 08:58:59

标签: android c++ c java-native-interface

我正在使用CPP,我想实现超时机制 表单示例,称为“foo()”的函数,它将在一些超时后触发一个函数执行,它将返回。

为什么我需要这个?

我有一个Android应用程序在该lib中使用一个CPP库(使用JNI接口),有一些功能需要时间来处理。我不能在单独的线程中调用这些函数(从java或CPP作为lib限制),因为我在Android应用程序中得到ANR。

所以我会做什么,我将使用JNI调用CPP层中的一个函数,它将启动一个计时器并将返回,以便android中的UI线程不会给出ANR,当这个计时器超时时它将调用该时间功能,当处理完成后,它将通知java层。

我该如何实现?

1 个答案:

答案 0 :(得分:0)

在您的本机C ++代码中,您也可以使用POSIX计时器和任何其他POSIX函数:

http://www.kernel.org/doc/man-pages/online/pages/man2/timer_create.2.html

为了方便许多标准任务(定时器,线程,套接字等),您可能需要考虑使用boost库。这需要一点研究。没有正式的Android端口提升。但是有关如何构建提升的说明,例如本书http://www.wowebook.be/book/android-ndk-beginners-guide/#