|
⇤ ← Revision 1 as of 2013-11-16 18:31:52
Size: 2040
Comment: Initial documentation of the function
|
Size: 2038
Comment: Changed return type, see SDL_system.h, real type still in description.
|
| Deletions are marked like this. | Additions are marked like this. |
| Line 12: | Line 12: |
| jobject SDL_AndroidGetActivity(void) | void* SDL_AndroidGetActivity(void) |
| Line 16: | Line 16: |
| Returns the jobject representing the instance of the activity class of the Android application, or NULL on error. | Returns the jobject representing the instance of the Activity class of the Android application, or NULL on error. |
DRAFT |
SDL_AndroidGetActivity
Use this function to retrieve the Java instance of the activity class in an Android application.
Syntax
void* SDL_AndroidGetActivity(void)
Return Value
Returns the jobject representing the instance of the Activity class of the Android application, or NULL on error.
The jobject returned by the function is a local reference and must be released by the caller. See the PushLocalFrame()/PopLocalFrame() or DeleteLocalRef() functions of the Java native interface (in Oracle's documentation).
Code Examples
// Calls the void MyActivity.showHome() method of the Java instance of the activity.
void showHome(void)
{
// retrieve the JNI environment.
JNIEnv* env = (JNIEnv*)SDL_AndroidGetJNIEnv();
// retrieve the Java instance of the SDLActivity
jobject activity = (jobject)SDL_AndroidGetActivity();
// find the Java class of the activity. It should be SDLActivity or a subclass of it.
jclass clazz( env->GetObjectClass(activity) );
// find the identifier of the method to call
jmethodID method_id = env->GetMethodID( clazz, "showHome", "()V" );
// effectively call the Java method
env->CallVoidMethod( activity, method_id );
// clean up the local references.
env->DeleteLocalRef(activity);
}
Remarks
The prototype of the function in SDL's code actually declares a void* return type, even if the implementation returns a jobject. The rationale being that it allows not to include jni.h in the headers of the SDL.
Version
This function is available in SDL 2.0.0
