Ho un dubbio sulle chiamate di funzione JNI effettuate da Android. Corrono sullo stesso thread dell'app Android? L'interfaccia utente si bloccherà se la funzione nativa richiede più tempo per l'esecuzione?Le funzioni JNI Android vengono eseguite sul thread principale?
10
A
risposta
13
Le chiamate JNI sono sincrone, come qualsiasi altra chiamata Java, è possibile cambiare o generare thread, ma se non lo si specifica, vengono eseguiti sullo stesso thread. Quindi, se chiami una funzione JNI dal thread dell'interfaccia utente, verrà bloccata fino a quando la funzione non ritorna.
1
La funzione JNI in esecuzione nello stesso thread con quella che chiama la funzione JNI.
Sembra che in questo modo, se si crea un nuovo thread (Thread A) in un servizio, e ha chiamato una funzione JNI nella Discussione A, allora la JNI in esecuzione in thread A.
Problemi correlati
- 1. Perché le operazioni UIKit devono essere eseguite sul thread principale?
- 2. Perché le funzioni sull'oggetto vengono eseguite da una funzione autoesposta?
- 3. Le funzioni autoesposte vengono eseguite su dom ready?
- 4. Come vengono eseguite le funzioni concatenate in JQuery?
- 5. JNI - multi-thread
- 6. Continuare compito sul thread principale
- 7. AscyncTask - Non sul thread principale
- 8. RxJava onCompleted e onTerminate sul thread principale
- 9. Le richiamate si verificano sul thread principale (UI)?
- 10. Blocco thread principale Android Thread WebView
- 11. L'XMLHttpRequest sincrono sul thread principale è obsoleto
- 12. È valido chiamare pthread_join sul thread principale?
- 13. Perché le funzioni non anonime vengono eseguite quando si utilizza il gestore eventi click?
- 14. Perché le mie richieste jQuery ajax vengono eseguite più volte?
- 15. Firebase XMLHttpRequest sincrono sul thread principale è deprecato
- 16. JNI - UnsatisfiedLinkError sul metodo nativo
- 17. Le modifiche in sospeso di TeamCity non vengono eseguite
- 18. Le migrazioni di django db_index vengono eseguite contemporaneamente?
- 19. In quale ordine vengono eseguite le fixture più piccole?
- 20. Le letture e le scritture vengono eseguite su proprietà atomiche in C#?
- 21. Perché le funzioni di risoluzione dello stato figlio vengono eseguite prima che vengano risolte le promesse dello stato genitore
- 22. Perché queste attività vengono eseguite in sequenza?
- 23. Come vengono implementate le funzioni iomanip?
- 24. Il thread principale è lo stesso del thread UI?
- 25. AudioServicesPlaySystemSound e thread principale
- 26. 'NSInternalInconsistencyException', motivo: 'Esegui solo sul thread principale!' error
- 27. Come eseguire il servizio non sul thread principale?
- 28. Obiettivo C: problemi durante l'aggiornamento dell'interfaccia utente sul thread principale
- 29. NSAttributedString initWithData e NSHTMLTextDocumentType incidente, se non sul thread principale
- 30. In PHP max_execution_time influisce sulle funzioni di arresto che vengono eseguite attraverso una chiamata register_shutdown_function()?
Grazie per il chiarimento – Shamy
Su quale thread viene eseguito JNI_OnLoad? – fnc12