[fpc-pascal] JNI/Android: Java events calling pascal code

patspiper patspiper at gmail.com
Tue Apr 22 18:39:44 CEST 2014


On 22/04/14 19:26, leledumbo wrote:
>> Now to the java media player: You assign a pascal method to the
> OnCompetion event (the question is how), and start the player
> (pascal/jni). Once the song is over, OnCompletion will fire and call the
> assigned pascal method.
>
> Ah... I see. That is AFAIK not possible. Java doesn't have the procedural
> type concept as it has much more OOP forced. Common Java code for callback
> is to pass an anonymous inner class implementing expected interface. The
> problem is that AFAIK JNI doesn't have access to dynamic class creation like
> that, you will need to write a Java wrapper which implements the interface
> and assign the Pascal callback.

So there is no way out without java coding. Moreover, each jclass that 
has 'events' will need a wrapper class.

However, it seems there might be a better solution which uses a fixed 
java snippet for all classes (using a dynamic proxy). As I am not very 
involved with java, pls have a look at:
https://groups.google.com/forum/#!topic/android-ndk/SRgy93Un8vM
especially the post before the last. Maybe you can shed more light on this?

Thanks,
Stephano



More information about the fpc-pascal mailing list