diff options
Diffstat (limited to 'src/android/java/src/org/qtproject/qt5/android/bindings/QtService.java')
-rw-r--r-- | src/android/java/src/org/qtproject/qt5/android/bindings/QtService.java | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/src/android/java/src/org/qtproject/qt5/android/bindings/QtService.java b/src/android/java/src/org/qtproject/qt5/android/bindings/QtService.java index cdd6c1efea..9fc8aaa181 100644 --- a/src/android/java/src/org/qtproject/qt5/android/bindings/QtService.java +++ b/src/android/java/src/org/qtproject/qt5/android/bindings/QtService.java @@ -37,10 +37,14 @@ package org.qtproject.qt5.android.bindings; import android.app.Service; +import android.util.Log; import android.content.Intent; import android.content.res.Configuration; +import android.os.Bundle; import android.os.IBinder; +import org.qtproject.qt5.android.QtNative; + public class QtService extends Service { QtServiceLoader m_loader = new QtServiceLoader(this); @@ -51,7 +55,17 @@ public class QtService extends Service /////////////// PLEASE DO NOT CHANGE THE FOLLOWING CODE ////////////////////////// ////////////////////////////////////////////////////////////////////////////////// protected void onCreateHook() { - m_loader.onCreate(); + // the application has already started + // do not reload everything again + if (QtNative.isStarted()) { + m_loader = null; + Log.w(QtNative.QtTAG, + "A QtService tried to start in the same process as an initiated " + + "QtActivity. That is not supported. This results in the service " + + "functioning as an Android Service detached from Qt."); + } else { + m_loader.onCreate(); + } } @Override public void onCreate() @@ -153,4 +167,14 @@ public class QtService extends Service return super.onUnbind(intent); } //--------------------------------------------------------------------------- + + public boolean loadApplication(Service service, ClassLoader classLoader, Bundle loaderParams) + { + return QtNative.serviceDelegate().loadApplication(service, classLoader, loaderParams); + } + + public boolean startApplication() + { + return QtNative.serviceDelegate().startApplication(); + } } |