¿Existe una función sleep () para Android NDK?

En Android NDK, ¿hay una función sleep () que duerme durante milisegundos X, pero no bloquea el bucle de eventos?

Estamos escribiendo pruebas API para trabajar en Mac, Windows y Android. Hasta ahora, hemos implementado algún tipo de sleep () para Mac y Windows, pero todos somos nuevos en Android NDK y necesitamos algo de ayuda. Gracias de antemano.

¿Así que está buscando un método sleep() que duerma durante cierto tiempo pero no bloquee el bucle de eventos? Esto suena extraño para mí. Creo que es posible que desee utilizar un nuevo hilo en su lugar y llamar el método sleep () allí – sin tener que usar cualquier JNI.

Convirtiendo @mreichelt commment en una respuesta:

Sí hay una función de sleep(seconds) .

1.add #include <unistd.h>

  1. Llamada: sleep(seconds) o usleep(microseconds)

Nota: Un microsegundo (nosotros o la letra griega mu plus s) es un millonésimo (10 -6) de segundo, mientras que un milisegundo (ms o msec) es una milésima de segundo

Las funciones normales de sueño de linux (usleep, etc) bloquearán el hilo que las llama. Depende de usted que el hilo que es – esperemos que no la interfaz de usuario uno.

Un acercamiento más androide del estilo sería configurar un acontecimiento para suceder en una hora futura y después volver del acontecimiento actual. Cuando se desencadene el nuevo evento, tome el siguiente paso. Piensen, por ejemplo, en una máquina de estado con cada estado entrando como un evento, haciendo algo efectivamente instantáneo, programando el siguiente estado para un tiempo futuro y luego regresando.

Puede utilizar [Handler.postDelayed] [1] para programar un Runnable para que se ejecute después de un tiempo establecido, el bucle de eventos continuará funcionando mientras tanto.

[1]: http://developer.android.com/reference/android/os/Handler.html#postDelayed(java.lang.Runnable , largo)

SÍ se define en unistd.h Pero la función de sueño cuidadoso no es estandarizada por lo que en el sueño de Windows que se define en `en Windows

 sleep(int millisenconds); 

En linux

 int sleep(unsigned int seconds); int usleep(useconds_t useconds); 

Usleep toma microseconds donde el sueño toma segundos. 1 segundo = 1 * 1000 * 1000

  • Encabezado ifaddrs.h no encontrado al compilar SDL para android
  • Idioma (s) / Marco adecuado para mapa móvil interactivo
  • ADVERTENCIA: ... / Android.mk: bibliotecas que no son del sistema en los indicadores de vinculador
  • Decodificación de YUV a RGB en C / C ++ con NDK
  • ¿Cuál es la señal fatal 6 en android logcat
  • Error de referencia indefinido - rand
  • Construcción de proyecto android produce error 2
  • no se puede encontrar el símbolo "__android_log_write" - Registro nativo de Android
  • Redireccionamiento de STDIN y STDOUT del programa C en Android
  • Cómo encontrar tamaño de matriz bidimensional en JNI
  • Android NDK: Abortar detener?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.