diff options
author | BogDan Vatra <bogdan@kdab.com> | 2015-12-17 09:30:16 +0200 |
---|---|---|
committer | BogDan Vatra <bogdan@kdab.com> | 2015-12-17 13:46:14 +0000 |
commit | 0b10d41c3db0d1a43e754a2bd923a0df8915d0e5 (patch) | |
tree | a3abcedaa3da0d7721e78fa15ac530969da3b1d5 /src/android | |
parent | 08ee579cf025ad868bb405835b57d31e512b6fd6 (diff) |
Android: Fix crash at exit
Delay the exit call until Java part finishes the execution.
We must be sure all the threads are stopped (hanged), when we
call exit, otherwise java thread will try to use static vars
that are freed by the qt thread.
We also need to call exit from Qt thread, otherwise Qt will complain
about it.
Change-Id: Ia1e7a4d7d56c39d38313f040aab618ec5a68dfb6
Reviewed-by: Christian Stromme <christian.stromme@theqtcompany.com>
Diffstat (limited to 'src/android')
-rw-r--r-- | src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java | 1 | ||||
-rw-r--r-- | src/android/jar/src/org/qtproject/qt5/android/QtNative.java | 7 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java b/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java index 4575d8a1d3..dd5a7b4fec 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java +++ b/src/android/jar/src/org/qtproject/qt5/android/QtActivityDelegate.java @@ -919,6 +919,7 @@ public class QtActivityDelegate public void onDestroy() { if (m_quitApp) { + QtNative.terminateQt(); if (m_debuggerProcess != null) m_debuggerProcess.destroy(); System.exit(0);// FIXME remove it or find a better way diff --git a/src/android/jar/src/org/qtproject/qt5/android/QtNative.java b/src/android/jar/src/org/qtproject/qt5/android/QtNative.java index 8880c003e7..2349ea6db1 100644 --- a/src/android/jar/src/org/qtproject/qt5/android/QtNative.java +++ b/src/android/jar/src/org/qtproject/qt5/android/QtNative.java @@ -294,7 +294,12 @@ public class QtNative private static void quitApp() { - m_activity.finish(); + runAction(new Runnable() { + @Override + public void run() { + m_activity.finish(); + } + }); } //@ANDROID-9 |