diff --git a/app/src/main/java/de/kuschku/quasseldroid/service/QuasselService.kt b/app/src/main/java/de/kuschku/quasseldroid/service/QuasselService.kt
index 9bb2a051ececdf804b0c55bac04e73f399d6f79a..1f4b2e043009a398f464eee1f695614212500895 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/service/QuasselService.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/service/QuasselService.kt
@@ -93,10 +93,9 @@ class QuasselService : DaggerLifecycleService(),
     val connectionSettings = Settings.connection(this)
 
     if (this.connectionSettings.showNotification != connectionSettings.showNotification) {
-      this.connectionSettings = connectionSettings
-
       updateNotificationStatus(this.progress)
     }
+    this.connectionSettings = connectionSettings
 
     val (accountId, reconnect) = this.sharedPreferences(Keys.Status.NAME, Context.MODE_PRIVATE) {
       Pair(
@@ -415,13 +414,15 @@ class QuasselService : DaggerLifecycleService(),
       .observeNetworkConnectivity(applicationContext)
       .toLiveData()
       .observe(this, Observer { connectivity ->
-        log(INFO, "QuasselService", "Connectivity changed: $connectivity")
-        handlerService.backend {
-          log(INFO, "QuasselService", "Reconnect triggered: Network changed")
-          sessionManager.autoConnect(
-            ignoreConnectionState = true,
-            ignoreSetting = true
-          )
+        if (!connectionSettings.ignoreNetworkChanges) {
+          log(INFO, "QuasselService", "Connectivity changed: $connectivity")
+          handlerService.backend {
+            log(INFO, "QuasselService", "Reconnect triggered: Network changed")
+            sessionManager.autoConnect(
+              ignoreConnectionState = true,
+              ignoreSetting = true
+            )
+          }
         }
       })
 
diff --git a/app/src/main/java/de/kuschku/quasseldroid/settings/ConnectionSettings.kt b/app/src/main/java/de/kuschku/quasseldroid/settings/ConnectionSettings.kt
index 1e4c4b3cfeac9ed8fe00962c5155010923313722..c59985a259399f378ba9f56076db273fdd1e2184 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/settings/ConnectionSettings.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/settings/ConnectionSettings.kt
@@ -20,7 +20,8 @@
 package de.kuschku.quasseldroid.settings
 
 data class ConnectionSettings(
-  val showNotification: Boolean = true
+  val showNotification: Boolean = true,
+  val ignoreNetworkChanges: Boolean = false
 ) {
   companion object {
     val DEFAULT = ConnectionSettings()
diff --git a/app/src/main/java/de/kuschku/quasseldroid/settings/Settings.kt b/app/src/main/java/de/kuschku/quasseldroid/settings/Settings.kt
index cb243d1da8e40ca1bcbff907dfd7ac44f7b154bf..a59c26b9fbb140ef0e1a17cacc4850dead5c8fb4 100644
--- a/app/src/main/java/de/kuschku/quasseldroid/settings/Settings.kt
+++ b/app/src/main/java/de/kuschku/quasseldroid/settings/Settings.kt
@@ -263,6 +263,10 @@ object Settings {
       showNotification = getBoolean(
         context.getString(R.string.preference_show_notification_key),
         ConnectionSettings.DEFAULT.showNotification
+      ),
+      ignoreNetworkChanges = getBoolean(
+        context.getString(R.string.preference_ignore_network_changes_key),
+        ConnectionSettings.DEFAULT.ignoreNetworkChanges
       )
     )
   }
diff --git a/app/src/main/res/values/strings_preferences.xml b/app/src/main/res/values/strings_preferences.xml
index cbd5b4766e3d6cd112e867280b677a018d39d59e..06e772b8a9133dcd79329a9e38047af24155f914 100644
--- a/app/src/main/res/values/strings_preferences.xml
+++ b/app/src/main/res/values/strings_preferences.xml
@@ -333,5 +333,9 @@
   <string name="preference_show_notification_title">Show notification</string>
   <string name="preference_show_notification_summary">Keeps Quasseldroid always connected by showing a persistent notification</string>
 
+  <string name="preference_ignore_network_changes_key" translatable="false">ignore_network_changes</string>
+  <string name="preference_ignore_network_changes_title">Ignore network changes</string>
+  <string name="preference_ignore_network_changes_summary">Stops Quasseldroid from reconnecting automatically if the network changes</string>
+
   <string name="preference_notification_id_key" translatable="false">notification_id</string>
 </resources>
diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml
index 00fa6b304e859ad4edddd8c362c53446610b74f6..46c3d5e73231319349e91d1b5cd670e024ebe47c 100644
--- a/app/src/main/res/xml/preferences.xml
+++ b/app/src/main/res/xml/preferences.xml
@@ -348,5 +348,10 @@
       android:key="@string/preference_show_notification_key"
       android:summary="@string/preference_show_notification_summary"
       android:title="@string/preference_show_notification_title" />
+    <SwitchPreference
+      android:defaultValue="true"
+      android:key="@string/preference_ignore_network_changes_key"
+      android:summary="@string/preference_ignore_network_changes_summary"
+      android:title="@string/preference_ignore_network_changes_title" />
   </PreferenceCategory>
 </PreferenceScreen>