diff --git a/src/android/jar/src/org/qtproject/qt/android/QtNative.java b/src/android/jar/src/org/qtproject/qt/android/QtNative.java index ec13401950c..20d0d252211 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtNative.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtNative.java @@ -268,16 +268,26 @@ public class QtNative // Post a runnable to Main (UI) Thread if the app is active, // otherwise, queue it to be posted when the the app is active again public static void runAction(Runnable action) + { + runAction(action, true); + } + + public static void runAction(Runnable action, boolean queueWhenInactive) { synchronized (m_mainActivityMutex) { final Looper mainLooper = Looper.getMainLooper(); final Handler handler = new Handler(mainLooper); - final boolean isStateVisible = - (m_stateDetails.state != ApplicationState.ApplicationSuspended) - && (m_stateDetails.state != ApplicationState.ApplicationHidden); - final boolean active = (isActivityValid() && isStateVisible) || isServiceValid(); - if (!active || !handler.post(action)) - m_lostActions.add(action); + + if (queueWhenInactive) { + final boolean isStateVisible = + (m_stateDetails.state != ApplicationState.ApplicationSuspended) + && (m_stateDetails.state != ApplicationState.ApplicationHidden); + final boolean active = (isActivityValid() && isStateVisible) || isServiceValid(); + if (!active || !handler.post(action)) + m_lostActions.add(action); + } else { + handler.post(action); + } } } diff --git a/src/android/jar/src/org/qtproject/qt/android/QtWindow.java b/src/android/jar/src/org/qtproject/qt/android/QtWindow.java index 86d5e9b4484..d72e69d32a7 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtWindow.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtWindow.java @@ -122,8 +122,8 @@ class QtWindow extends QtLayout implements QtSurfaceInterface { if (m_surfaceContainer != null) { removeView(m_surfaceContainer); m_surfaceContainer = null; - } - }); + } + }, false); } public void setGeometry(final int x, final int y, final int w, final int h)