diff --git a/briar-android/src/main/AndroidManifest.xml b/briar-android/src/main/AndroidManifest.xml
index 102de1290c936f258fbc59e2c1714eda23fe5320..cc195722b5ed4d73697f2aff55a7ecfaada950bf 100644
--- a/briar-android/src/main/AndroidManifest.xml
+++ b/briar-android/src/main/AndroidManifest.xml
@@ -374,7 +374,12 @@
 		</activity>
 
 		<activity
-			android:name="org.briarproject.briar.android.panic.ExitActivity"
+			android:name="org.briarproject.briar.android.logout.ExitActivity"
+			android:theme="@android:style/Theme.NoDisplay">
+		</activity>
+
+		<activity
+			android:name=".android.logout.HideUiActivity"
 			android:theme="@android:style/Theme.NoDisplay">
 		</activity>
 
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/BriarService.java b/briar-android/src/main/java/org/briarproject/briar/android/BriarService.java
index 8e1abd66a2ac03720c8190175a7c8308f71a7f3a..633a9f3c21d88a560a52381f109ea5141725a37a 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/BriarService.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/BriarService.java
@@ -17,6 +17,7 @@ import org.briarproject.bramble.api.lifecycle.LifecycleManager;
 import org.briarproject.bramble.api.lifecycle.LifecycleManager.StartResult;
 import org.briarproject.bramble.api.system.AndroidExecutor;
 import org.briarproject.briar.R;
+import org.briarproject.briar.android.logout.HideUiActivity;
 import org.briarproject.briar.android.navdrawer.NavDrawerActivity;
 
 import java.util.concurrent.CountDownLatch;
@@ -28,8 +29,11 @@ import javax.inject.Inject;
 import static android.app.NotificationManager.IMPORTANCE_DEFAULT;
 import static android.app.NotificationManager.IMPORTANCE_NONE;
 import static android.app.PendingIntent.FLAG_UPDATE_CURRENT;
+import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TASK;
 import static android.content.Intent.FLAG_ACTIVITY_CLEAR_TOP;
+import static android.content.Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS;
 import static android.content.Intent.FLAG_ACTIVITY_NEW_TASK;
+import static android.content.Intent.FLAG_ACTIVITY_NO_ANIMATION;
 import static android.os.Build.VERSION.SDK_INT;
 import static android.support.v4.app.NotificationCompat.CATEGORY_SERVICE;
 import static android.support.v4.app.NotificationCompat.PRIORITY_MIN;
@@ -194,7 +198,29 @@ public class BriarService extends Service {
 	public void onLowMemory() {
 		super.onLowMemory();
 		LOG.warning("Memory is low");
-		// FIXME: Work out what to do about it
+		shutdownFromBackground();
+	}
+
+	private void shutdownFromBackground() {
+		// Stop the service
+		stopSelf();
+		// Hide the UI
+		Intent i = new Intent(this, HideUiActivity.class);
+		i.addFlags(FLAG_ACTIVITY_NEW_TASK
+				| FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS
+				| FLAG_ACTIVITY_NO_ANIMATION
+				| FLAG_ACTIVITY_CLEAR_TASK);
+		startActivity(i);
+		// Wait for shutdown to complete, then exit
+		new Thread(() -> {
+			try {
+				if (started) lifecycleManager.waitForShutdown();
+			} catch (InterruptedException e) {
+				LOG.info("Interrupted while waiting for shutdown");
+			}
+			LOG.info("Exiting");
+			System.exit(0);
+		}).start();
 	}
 
 	/**
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java
index 4996961820534ddedb08168fda130eb4f455b6a5..d557e717fc423eec24194a87f14f6ec2ffcc230e 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/activity/BriarActivity.java
@@ -16,7 +16,7 @@ import org.briarproject.briar.android.controller.BriarController;
 import org.briarproject.briar.android.controller.DbController;
 import org.briarproject.briar.android.controller.handler.UiResultHandler;
 import org.briarproject.briar.android.login.PasswordActivity;
-import org.briarproject.briar.android.panic.ExitActivity;
+import org.briarproject.briar.android.logout.ExitActivity;
 
 import java.util.logging.Logger;
 
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/panic/ExitActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/logout/ExitActivity.java
similarity index 92%
rename from briar-android/src/main/java/org/briarproject/briar/android/panic/ExitActivity.java
rename to briar-android/src/main/java/org/briarproject/briar/android/logout/ExitActivity.java
index bd027c39c0f87eb3cd46d02c7b83f04758bd34b2..78c0a57e9f22bff498532179c3824f7f6ca710f3 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/panic/ExitActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/logout/ExitActivity.java
@@ -1,4 +1,4 @@
-package org.briarproject.briar.android.panic;
+package org.briarproject.briar.android.logout;
 
 import android.os.Build;
 import android.os.Bundle;
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/logout/HideUiActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/logout/HideUiActivity.java
new file mode 100644
index 0000000000000000000000000000000000000000..3064993f795b8336886e510fd770c1811c262281
--- /dev/null
+++ b/briar-android/src/main/java/org/briarproject/briar/android/logout/HideUiActivity.java
@@ -0,0 +1,20 @@
+package org.briarproject.briar.android.logout;
+
+import android.os.Bundle;
+
+import org.briarproject.briar.android.activity.ActivityComponent;
+import org.briarproject.briar.android.activity.BaseActivity;
+
+public class HideUiActivity extends BaseActivity {
+
+	@Override
+	public void onCreate(Bundle state) {
+		super.onCreate(state);
+		finish();
+	}
+
+	@Override
+	public void injectActivity(ActivityComponent component) {
+
+	}
+}
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/fragment/SignOutFragment.java b/briar-android/src/main/java/org/briarproject/briar/android/logout/SignOutFragment.java
similarity index 77%
rename from briar-android/src/main/java/org/briarproject/briar/android/fragment/SignOutFragment.java
rename to briar-android/src/main/java/org/briarproject/briar/android/logout/SignOutFragment.java
index 6d122c6df6a5b79a096cd3ec6ccb7f336ac3f650..a0bc316846e8c26b09a03c38d5652334434432a9 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/fragment/SignOutFragment.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/logout/SignOutFragment.java
@@ -1,4 +1,4 @@
-package org.briarproject.briar.android.fragment;
+package org.briarproject.briar.android.logout;
 
 import android.os.Bundle;
 import android.view.LayoutInflater;
@@ -7,7 +7,9 @@ import android.view.ViewGroup;
 
 import org.briarproject.briar.R;
 import org.briarproject.briar.android.activity.ActivityComponent;
+import org.briarproject.briar.android.fragment.BaseFragment;
 
+import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
 public class SignOutFragment extends BaseFragment {
@@ -15,7 +17,7 @@ public class SignOutFragment extends BaseFragment {
 	public static final String TAG = SignOutFragment.class.getName();
 
 	@Override
-	public View onCreateView(LayoutInflater inflater,
+	public View onCreateView(@Nonnull LayoutInflater inflater,
 			@Nullable ViewGroup container,
 			@Nullable Bundle savedInstanceState) {
 		return inflater.inflate(R.layout.fragment_sign_out, container, false);
diff --git a/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java b/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java
index a42a1071c71586647d34691cf9c8c70004bdca39..af09db700455912c9c9946100a02604937cb43cc 100644
--- a/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java
+++ b/briar-android/src/main/java/org/briarproject/briar/android/navdrawer/NavDrawerActivity.java
@@ -37,7 +37,7 @@ import org.briarproject.briar.android.controller.handler.UiResultHandler;
 import org.briarproject.briar.android.forum.ForumListFragment;
 import org.briarproject.briar.android.fragment.BaseFragment;
 import org.briarproject.briar.android.fragment.BaseFragment.BaseFragmentListener;
-import org.briarproject.briar.android.fragment.SignOutFragment;
+import org.briarproject.briar.android.logout.SignOutFragment;
 import org.briarproject.briar.android.navdrawer.NavDrawerController.ExpiryWarning;
 import org.briarproject.briar.android.privategroup.list.GroupListFragment;
 import org.briarproject.briar.android.settings.SettingsActivity;