Browse Source

Android: do quit the app when calling JUCEApplicationBase::quit(), rather than just placing it in the background (same as on iOS).

tags/2021-05-28
Lukasz Kozakiewicz 7 years ago
parent
commit
c90835eafc
2 changed files with 17 additions and 1 deletions
  1. +13
    -1
      modules/juce_events/native/juce_android_Messaging.cpp
  2. +4
    -0
      modules/juce_gui_basics/native/juce_android_Windowing.cpp

+ 13
- 1
modules/juce_events/native/juce_android_Messaging.cpp View File

@@ -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);
}
};


+ 4
- 0
modules/juce_gui_basics/native/juce_android_Windowing.cpp View File

@@ -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))


Loading…
Cancel
Save