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 b5de60d49d7..dccaf45a05e 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtActivityBase.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtActivityBase.java @@ -63,25 +63,19 @@ public class QtActivityBase extends Activity implements QtNative.AppStateDetails m_applicationParams += params; } - private void handleActivityRestart() { - if (QtNative.getStateDetails().isStarted) { - boolean updated = m_delegate.updateActivityAfterRestart(this); - if (!updated) { - // could not update the activity so restart the application - Intent intent = Intent.makeRestartActivityTask(getComponentName()); - startActivity(intent); - QtNative.quitApp(); - Runtime.getRuntime().exit(0); - } - } - } - @Override public void setTheme(int resId) { super.setTheme(resId); m_isCustomThemeSet = true; } + private void restartApplication() { + Intent intent = Intent.makeRestartActivityTask(getComponentName()); + startActivity(intent); + QtNative.quitApp(); + Runtime.getRuntime().exit(0); + } + @Override protected void onCreate(Bundle savedInstanceState) { @@ -94,11 +88,17 @@ public class QtActivityBase extends Activity implements QtNative.AppStateDetails android.R.style.Theme_Holo_Light); } + if (QtNative.getStateDetails().isStarted) { + // We don't yet have a reliable way to keep the app + // running properly in case of an Activity only restart, + // so for now restart the whole app. + restartApplication(); + } + m_delegate = new QtActivityDelegate(this); QtNative.registerAppStateListener(this); - handleActivityRestart(); addReferrer(getIntent()); QtActivityLoader loader = new QtActivityLoader(this); 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 596074c6310..d78c059094b 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegate.java @@ -97,21 +97,6 @@ class QtActivityDelegate extends QtActivityDelegateBase }); } - @Override - public boolean updateActivityAfterRestart(Activity activity) { - boolean updated = super.updateActivityAfterRestart(activity); - // TODO verify whether this is even needed, the last I checked the initMembers - // recreates the layout anyway - // update the new activity content view to old layout - ViewGroup layoutParent = (ViewGroup)m_layout.getParent(); - if (layoutParent != null) - layoutParent.removeView(m_layout); - - m_activity.setContentView(m_layout); - - return updated; - } - @Override void startNativeApplicationImpl(String appParams, String mainLib) { diff --git a/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegateBase.java b/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegateBase.java index 4980a47d08d..84a5961b8a6 100644 --- a/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegateBase.java +++ b/src/android/jar/src/org/qtproject/qt/android/QtActivityDelegateBase.java @@ -77,21 +77,6 @@ abstract class QtActivityDelegateBase return m_contextMenuVisible; } - public boolean updateActivityAfterRestart(Activity activity) { - try { - // set new activity - m_activity = activity; - QtNative.setActivity(m_activity); - - // force c++ native activity object to update - return QtNative.updateNativeActivity(); - } catch (Exception e) { - Log.w(QtNative.QtTAG, "Failed to update the activity."); - e.printStackTrace(); - return false; - } - } - public void startNativeApplication(String appParams, String mainLib) { if (m_membersInitialized)