From 65635c6b9385ecc991bd11dbd693885c4d92de58 Mon Sep 17 00:00:00 2001 From: Max Lv Date: Tue, 2 Feb 2016 09:52:36 +0800 Subject: [PATCH] Avoid service restarted by system --- project/plugins.sbt | 2 +- src/main/scala/com/github/shadowsocks/BaseService.scala | 3 +++ .../scala/com/github/shadowsocks/ShadowsocksNatService.scala | 2 -- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/project/plugins.sbt b/project/plugins.sbt index 82d45b05..230e595f 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,6 +1,6 @@ resolvers += Resolver.url("scalasbt releases", new URL("http://scalasbt.artifactoryonline.com/scalasbt/sbt-plugin-snapshots"))(Resolver.ivyStylePatterns) -addSbtPlugin("com.hanhuy.sbt" % "android-sdk-plugin" % "1.5.14") +addSbtPlugin("com.hanhuy.sbt" % "android-sdk-plugin" % "1.5.15") resolvers += "Sonatype snapshots" at "https://oss.sonatype.org/content/repositories/snapshots/" diff --git a/src/main/scala/com/github/shadowsocks/BaseService.scala b/src/main/scala/com/github/shadowsocks/BaseService.scala index fb78c896..346e5485 100644 --- a/src/main/scala/com/github/shadowsocks/BaseService.scala +++ b/src/main/scala/com/github/shadowsocks/BaseService.scala @@ -178,6 +178,9 @@ trait BaseService extends Service { }) } + // Service of shadowsocks should always be started explicitly + override def onStartCommand(intent: Intent, flags: Int, startId: Int): Int = Service.START_NOT_STICKY + protected def changeState(s: Int, msg: String) { val handler = new Handler(getContext.getMainLooper) handler.post(() => if (state != s) { diff --git a/src/main/scala/com/github/shadowsocks/ShadowsocksNatService.scala b/src/main/scala/com/github/shadowsocks/ShadowsocksNatService.scala index 7cfa55df..f9cfa85a 100644 --- a/src/main/scala/com/github/shadowsocks/ShadowsocksNatService.scala +++ b/src/main/scala/com/github/shadowsocks/ShadowsocksNatService.scala @@ -335,8 +335,6 @@ class ShadowsocksNatService extends BaseService { ConfigUtils.refresh(this) } - override def onStartCommand(intent: Intent, flags: Int, startId: Int): Int = Service.START_STICKY - def killProcesses() { if (sslocalProcess != null) { sslocalProcess.destroy()