Commit ab487b9a authored by Max Kellermann's avatar Max Kellermann

Android: use startForegroundService() in Android 8+

Fixes the error: IllegalStateException: Not allowed to start service Intent { cmp=org.musicpd/.Main (has extras) }: app is in background
parent ac59ec34
...@@ -4,6 +4,8 @@ ver 0.22.9 (not yet released) ...@@ -4,6 +4,8 @@ ver 0.22.9 (not yet released)
* decoder * decoder
- ffmpeg: support the tags "sort_album", "album-sort", "artist-sort" - ffmpeg: support the tags "sort_album", "album-sort", "artist-sort"
- ffmpeg: fix build failure with FFmpeg 3.4 - ffmpeg: fix build failure with FFmpeg 3.4
* Android
- fix auto-start on boot in Android 8 or later
* Windows * Windows
- fix build failure with SQLite - fix build failure with SQLite
......
...@@ -414,6 +414,15 @@ public class Main extends Service implements Runnable { ...@@ -414,6 +414,15 @@ public class Main extends Service implements Runnable {
* start Main service without any callback * start Main service without any callback
*/ */
public static void start(Context context, boolean wakelock) { public static void start(Context context, boolean wakelock) {
context.startService(new Intent(context, Main.class).putExtra("wakelock", wakelock)); Intent intent = new Intent(context, Main.class)
.putExtra("wakelock", wakelock);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
/* in Android 8+, we need to use this method
or else we'll get "IllegalStateException:
app is in background" */
context.startForegroundService(intent);
else
context.startService(intent);
} }
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment