diff --git a/src/api-impl/android/app/Service.java b/src/api-impl/android/app/Service.java index 422a32d6..9d53c485 100644 --- a/src/api-impl/android/app/Service.java +++ b/src/api-impl/android/app/Service.java @@ -10,6 +10,10 @@ public abstract class Service extends Context { System.out.println("Service.onCreate() called"); } + public void onDestroy() { + System.out.println("Service.onDestroy() called"); + } + public abstract IBinder onBind(Intent intent); public abstract int onStartCommand(Intent intent, int flags, int startId); diff --git a/src/api-impl/android/content/Context.java b/src/api-impl/android/content/Context.java index cfcbb064..c6948469 100644 --- a/src/api-impl/android/content/Context.java +++ b/src/api-impl/android/content/Context.java @@ -553,7 +553,15 @@ public class Context extends Object { } } - public boolean stopService(Intent intent) {return false;} + public boolean stopService(Intent intent) throws ClassNotFoundException { + Class cls = Class.forName(intent.getComponent().getClassName()).asSubclass(Service.class); + Service service = runningServices.remove(cls); + if (service != null) { + service.onDestroy(); + return true; + } + return false; + } public void unbindService(ServiceConnection serviceConnection) {}