user1940676 user1940676 - 1 year ago 48
Android Question

What is the proper way to stop a service running as foreground

I am trying to stop a service which is running as foreground service.

The current issue is that when I call

stopService()
the notification still stays.

So in my solution I have added a receiver which I am registering to inside the
onCreate()


Inside the
onReceive()
method I call
stopforeground(true)
and it hides the notification.
And then
stopself()
to stop the service.

Inside the
onDestroy()
I unregistered the receiver.

Is there a more proper way to handle this? because stopService() simply doesn't work.

@Override
public void onDestroy(){
unregisterReceiver(receiver);
super.onDestroy();
}

Answer Source

From your activity call startService(intent) and pass it some data that will represent a key to stop the service.

From your service call stopforeground(true) and than stopself() right after it.

Recommended from our users: Dynamic Network Monitoring from WhatsUp Gold from IPSwitch. Free Download