From b833cb6267a56224dc9cc17093153bc8dc19d88a Mon Sep 17 00:00:00 2001 From: Max Lv Date: Tue, 12 Jul 2016 13:36:23 +0800 Subject: [PATCH] Refine #530 again and again Put ShadowsocksRunnerService into :bg process. It helped to solve #530, but still I'm not sure why it works. One assumption is that the startService() in BootReceiver helps to ensure :bg process in a valid state. --- src/main/AndroidManifest.xml | 1 + .../com/github/shadowsocks/ShadowsocksRunnerService.scala | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml index df93594b..edda018b 100644 --- a/src/main/AndroidManifest.xml +++ b/src/main/AndroidManifest.xml @@ -118,6 +118,7 @@ diff --git a/src/main/scala/com/github/shadowsocks/ShadowsocksRunnerService.scala b/src/main/scala/com/github/shadowsocks/ShadowsocksRunnerService.scala index b9cadb2b..590ab4f2 100644 --- a/src/main/scala/com/github/shadowsocks/ShadowsocksRunnerService.scala +++ b/src/main/scala/com/github/shadowsocks/ShadowsocksRunnerService.scala @@ -54,11 +54,11 @@ class ShadowsocksRunnerService extends Service with ServiceBoundContext { } override def onServiceConnected() { - handler.postDelayed(() => if (bgService != null) { + if (bgService != null) { if (app.isNatEnabled) startBackgroundService() else if (VpnService.prepare(ShadowsocksRunnerService.this) == null) startBackgroundService() - stopSelf() - }, 1000) + } + handler.postDelayed(() => stopSelf() , 1000) } def startBackgroundService() = {