From e7f2f85c3d53c4b46ae7b9345515eff1cf7ce672 Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Wed, 17 Sep 2014 08:59:43 -0300 Subject: [PATCH] [Android] Fixes #2679 - Crash resuming from screen off Before destroying the static Java-side data, wait for the SDL native thread, *and* the listener thread that waits on it to trigger a clean up. --- android-project/src/org/libsdl/app/SDLActivity.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/android-project/src/org/libsdl/app/SDLActivity.java b/android-project/src/org/libsdl/app/SDLActivity.java index 60bc45f16..f10a9d9d4 100644 --- a/android-project/src/org/libsdl/app/SDLActivity.java +++ b/android-project/src/org/libsdl/app/SDLActivity.java @@ -932,16 +932,16 @@ class SDLSurface extends SurfaceView implements SurfaceHolder.Callback, // This is the entry point to the C app. // Start up the C app thread and enable sensor input for the first time - SDLActivity.mSDLThread = new Thread(new SDLMain(), "SDLThread"); + final Thread sdlThread = new Thread(new SDLMain(), "SDLThread"); enableSensor(Sensor.TYPE_ACCELEROMETER, true); - SDLActivity.mSDLThread.start(); + sdlThread.start(); // Set up a listener thread to catch when the native thread ends - new Thread(new Runnable(){ + SDLActivity.mSDLThread = new Thread(new Runnable(){ @Override public void run(){ try { - SDLActivity.mSDLThread.join(); + sdlThread.join(); } catch(Exception e){} finally{ @@ -951,7 +951,8 @@ class SDLSurface extends SurfaceView implements SurfaceHolder.Callback, } } } - }).start(); + }); + SDLActivity.mSDLThread.start(); } }