diff --git a/modules/juce_events/native/juce_android_Messaging.cpp b/modules/juce_events/native/juce_android_Messaging.cpp index 682edae824..3913ed7f81 100644 --- a/modules/juce_events/native/juce_android_Messaging.cpp +++ b/modules/juce_events/native/juce_android_Messaging.cpp @@ -156,7 +156,19 @@ void MessageManager::stopDispatchLoop() void messageCallback() override { - android.activity.callVoidMethod (JuceAppActivity.finish); + auto* env = getEnv(); + + jmethodID quitMethod = env->GetMethodID (JuceAppActivity, "finishAndRemoveTask", "()V"); + + if (quitMethod != 0) + { + env->CallVoidMethod (android.activity, quitMethod); + return; + } + + quitMethod = env->GetMethodID (JuceAppActivity, "finish", "()V"); + jassert (quitMethod != 0); + env->CallVoidMethod (android.activity, quitMethod); } }; diff --git a/modules/juce_gui_basics/native/juce_android_Windowing.cpp b/modules/juce_gui_basics/native/juce_android_Windowing.cpp index fff5d95ff8..a846d8b877 100644 --- a/modules/juce_gui_basics/native/juce_android_Windowing.cpp +++ b/modules/juce_gui_basics/native/juce_android_Windowing.cpp @@ -100,6 +100,10 @@ JUCE_JNI_CALLBACK (JUCE_ANDROID_ACTIVITY_CLASSNAME, quitApp, void, (JNIEnv* env, JUCEApplicationBase::appWillTerminateByForce(); android.shutdown (env); + + jclass systemClass = (jclass) env->FindClass ("java/lang/System"); + jmethodID exitMethod = env->GetStaticMethodID (systemClass, "exit", "(I)V"); + env->CallStaticVoidMethod (systemClass, exitMethod, 0); } JUCE_JNI_CALLBACK (JUCE_ANDROID_ACTIVITY_CLASSNAME, appActivityResult, void, (JNIEnv* env, jobject, jint requestCode, jint resultCode, jobject intentData))