diff --git a/src/android/jar/src/org/qtproject/qt/android/QtActivityBase.java b/src/android/jar/src/org/qtproject/qt/android/QtActivityBase.java index 0999b440463..77bade3c51b 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtActivityBase.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtActivityBase.java @@ -24,7 +24,7 @@ import android.view.View; import android.view.Window; import java.lang.IllegalArgumentException; -public class QtActivityBase extends Activity implements QtNative.AppStateDetailsListener +public class QtActivityBase extends Activity { private String m_applicationParams = ""; private boolean m_isCustomThemeSet = false; @@ -102,7 +102,7 @@ public class QtActivityBase extends Activity implements QtNative.AppStateDetails m_delegate = new QtActivityDelegate(this); - QtNative.registerAppStateListener(this); + QtNative.registerAppStateListener(m_delegate); addReferrer(getIntent()); @@ -124,14 +124,6 @@ public class QtActivityBase extends Activity implements QtNative.AppStateDetails } } - @Override - public void onAppStateDetailsChanged(QtNative.ApplicationStateDetails details) { - if (details.isStarted) - m_delegate.registerBackends(); - else - m_delegate.unregisterBackends(); - } - @Override protected void onStart() { @@ -178,7 +170,7 @@ public class QtActivityBase extends Activity implements QtNative.AppStateDetails { super.onDestroy(); if (!m_retainNonConfigurationInstance) { - QtNative.unregisterAppStateListener(this); + QtNative.unregisterAppStateListener(m_delegate); QtNative.terminateQt(); QtNative.setActivity(null); QtNative.getQtThread().exit(); diff --git a/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java b/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java index 7491dc5c90d..4c7dae4f323 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java @@ -31,7 +31,8 @@ import android.widget.PopupMenu; import java.util.HashMap; class QtActivityDelegate extends QtActivityDelegateBase - implements QtWindowInterface, QtAccessibilityInterface, QtMenuInterface + implements QtWindowInterface, QtAccessibilityInterface, QtMenuInterface, + QtNative.AppStateDetailsListener { private static final String QtTAG = "QtActivityDelegate"; @@ -88,6 +89,15 @@ class QtActivityDelegate extends QtActivityDelegateBase }); } + + @Override + final public void onAppStateDetailsChanged(QtNative.ApplicationStateDetails details) { + if (details.isStarted) + registerBackends(); + else + unregisterBackends(); + } + @Override void startNativeApplicationImpl(String appParams, String mainLib) {