diff options
Diffstat (limited to 'packages/services/Proxy/src')
-rw-r--r-- | packages/services/Proxy/src/com/android/proxyhandler/ProxyService.java | 10 | ||||
-rw-r--r-- | packages/services/Proxy/src/com/android/proxyhandler/ProxyServiceReceiver.java | 13 |
2 files changed, 17 insertions, 6 deletions
diff --git a/packages/services/Proxy/src/com/android/proxyhandler/ProxyService.java b/packages/services/Proxy/src/com/android/proxyhandler/ProxyService.java index 0aea5ee..18ed645 100644 --- a/packages/services/Proxy/src/com/android/proxyhandler/ProxyService.java +++ b/packages/services/Proxy/src/com/android/proxyhandler/ProxyService.java @@ -24,24 +24,28 @@ public class ProxyService extends Service { @Override public int onStartCommand(Intent intent, int flags, int startId) { if (intent != null) { - handleCommand(intent); + if (handleCommand(intent)) { + return START_REDELIVER_INTENT; + } } - return START_STICKY; + return START_NOT_STICKY; } - private void handleCommand(Intent intent) { + private boolean handleCommand(Intent intent) { Bundle bundle = intent.getExtras(); ProxyProperties proxy = null; if ((bundle != null) && bundle.containsKey(Proxy.EXTRA_PROXY_INFO)) { proxy = bundle.getParcelable(Proxy.EXTRA_PROXY_INFO); if ((proxy != null) && !TextUtils.isEmpty(proxy.getPacFileUrl())) { startProxy(proxy); + return true; } else { stopSelf(); } } else { stopSelf(); } + return false; } diff --git a/packages/services/Proxy/src/com/android/proxyhandler/ProxyServiceReceiver.java b/packages/services/Proxy/src/com/android/proxyhandler/ProxyServiceReceiver.java index f5c2ca5..4638def 100644 --- a/packages/services/Proxy/src/com/android/proxyhandler/ProxyServiceReceiver.java +++ b/packages/services/Proxy/src/com/android/proxyhandler/ProxyServiceReceiver.java @@ -4,7 +4,9 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.net.Proxy; +import android.net.ProxyProperties; import android.os.Bundle; +import android.text.TextUtils; public class ProxyServiceReceiver extends BroadcastReceiver { @@ -12,11 +14,16 @@ public class ProxyServiceReceiver extends BroadcastReceiver { public void onReceive(Context context, Intent intent) { Intent service = new Intent(context, ProxyService.class); Bundle bundle = intent.getExtras(); + ProxyProperties proxy = null; if (bundle != null) { - service.putExtra(Proxy.EXTRA_PROXY_INFO, - bundle.getParcelable(Proxy.EXTRA_PROXY_INFO)); + proxy = bundle.getParcelable(Proxy.EXTRA_PROXY_INFO); + service.putExtra(Proxy.EXTRA_PROXY_INFO, proxy); + } + if ((proxy != null) && (!TextUtils.isEmpty(proxy.getPacFileUrl()))) { + context.startService(service); + } else { + context.stopService(service); } - context.startService(service); } } |