From 187cb28d15fe3706f13576d4a2ff1efba1b91a7c Mon Sep 17 00:00:00 2001 From: Max Lv Date: Sat, 30 Jan 2016 14:01:46 +0800 Subject: [PATCH] Fix an issue of NAT mode If call notify() after startForeground() on the same notification id, the service becomes not that "foreground" and would be killed by system if the activity is removed from the recent list. --- .../com/github/shadowsocks/ShadowsocksNotification.scala | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/scala/com/github/shadowsocks/ShadowsocksNotification.scala b/src/main/scala/com/github/shadowsocks/ShadowsocksNotification.scala index a11fc008..1b29cbc5 100644 --- a/src/main/scala/com/github/shadowsocks/ShadowsocksNotification.scala +++ b/src/main/scala/com/github/shadowsocks/ShadowsocksNotification.scala @@ -30,7 +30,6 @@ class ShadowsocksNotification(private val service: BaseService, profileName: Str } private var lockReceiver: BroadcastReceiver = _ private var callbackRegistered: Boolean = _ - private var started: Boolean = _ private val builder = new NotificationCompat.Builder(service) .setWhen(0) @@ -77,9 +76,8 @@ class ShadowsocksNotification(private val service: BaseService, profileName: Str show() } else if (forceShow) show() - def show() = if (started) nm.notify(1, builder.build) else { + def show() = { service.startForeground(1, builder.build) - started = true } def destroy() {