[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.
diff --git a/android-project/src/org/libsdl/app/SDLActivity.java b/android-project/src/org/libsdl/app/SDLActivity.java
index 60bc45f..f10a9d9 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();
}
}