Ruchir Baronia
Ruchir Baronia

Reputation: 7571

Start two services in foreground?

In an effort to keep my services alive, can I have more than one service in foreground?

I am starting two services at once, and I don't want any of them to be destroyed. So, after reading for hours, I found the solution is to return START_STICKY and use startForeground(...) on my service. But, I have two services, so can I have them both be in the foreground, and both never be destroyed?

Upvotes: 6

Views: 4985

Answers (1)

Trinimon
Trinimon

Reputation: 13957

There are several aspects to consider.

  1. First of all: if you have two services in foreground, you have to have two notifications as well. This is considered as a security feature (check for instance this post). Having two icons in the status bar for one app might be quite confusing to the user and is IMHO reason enough to drop this idea.
  2. As stated in the comments: even if starting in foreground, a service might be destroyed anyway. Just keep this in mind. However, in my experience this happens rather rarely, almost never - except with ...
  3. ... devices that are shipped with pre-installed start managers or energy savers (many Huawei devices for instance). If your app is not configured appropriately your services will be killed several seconds/minutes after the screen turns off - or it will not automatically be started after reboot.

So, as always it depends on what exact you want to achieve ;) But to me it looks like as if you could simply implement two threads in one sticky service - I can't any see disadvantages here.

If your app gets inactivated by any kind of start manager, crash, or force close, your users might have to start the app again (see this post including app states).

Hope this helps!

Upvotes: 6

Related Questions