diff --git a/android/src/org/rockbox/RockboxService.java b/android/src/org/rockbox/RockboxService.java index a441a7dec4..4d61dea7ff 100644 --- a/android/src/org/rockbox/RockboxService.java +++ b/android/src/org/rockbox/RockboxService.java @@ -61,6 +61,7 @@ public class RockboxService extends Service /* locals needed for the c code and rockbox state */ private RockboxFramebuffer fb = null; private boolean mRockboxRunning = false; + private volatile boolean rbLibLoaded; private Activity current_activity = null; private IntentFilter itf; private BroadcastReceiver batt_monitor; @@ -112,7 +113,8 @@ public class RockboxService extends Service if (intent.hasExtra("callback")) resultReceiver = (ResultReceiver) intent.getParcelableExtra("callback"); - startservice(); + if (!rbLibLoaded) + startservice(); /* Display a notification about us starting. * We put an icon in the status bar. */ @@ -218,6 +220,7 @@ public class RockboxService extends Service } System.loadLibrary("rockbox"); + rbLibLoaded = true; if (resultReceiver != null) resultReceiver.send(RESULT_LIB_LOADED, null); main();