I’m looking into implementing an over-Bluetooth video streaming service for Android.
How can I ensure that:
- the service runs with a high priority? I’d like to minimize latency.
- the service is low of the list of things to be killed when memory is tight?
There are two important things you need to do to make sure your service keeps running:
Make sure you call
startService()instead of (or in addition to) binding. This will make sure that the service continues running, even if the Activity that created it is killed.Use
startForegroud()to run the service in the foreground, so that Android won’t reclaim it when memory is needed. It requires that you also create aNotificationthat gets published when the service actually starts, putting an icon in the notification area and letting the user know your service is still running.For more information:
http://developer.android.com/reference/android/app/Service.html
http://developer.android.com/guide/topics/fundamentals/bound-services.html