Jag har Turf-appen igång med GPS påslaget på min Samsung Galaxy S2 och sätter telefonen i min bilhållare (Samsung-artikel ECS-V1A2BEGSTD). När jag sätter fast telefonen så går "Car Mode" igång.
Då startar en ny instans av Turf-appen, fast den gamla fortsätter köra på något sätt!
I den nya instansen av turf-appen får jag upp frågan "GPS is needed to take over zones, would you like to activate GPS?". Jag trycker "No".
GPS-ikonen lyser fortfarande och andra spelare kan se mig på kartan, men det är från den första instansen av appen, som ligger i bakgrunden på något vis.
När jag sedan avslutar den andra instansen av appen så kör fortfarande den första någonstans i bakgrunden. TurfWidget startar bara en ny version av Turf och kan inte växla till den gamla instansen i bakgrunden.
Önskat beteende
När telefonen går i och ur Car Mode så vill jag inte att det ska hända ett dugg med med Turf-appen. Jag vill bara att en och samma instans ska fortsätta köra.
Lösning?
Enligt Dokumentationen för <activity> i AndroidManifest.xml:
Uppdatera AndroidManifest.xml:android:configChanges
Lists configuration changes that the activity will handle itself. When a configuration change occurs at runtime, the activity is shut down and restarted by default, but declaring a configuration with this attribute will prevent the activity from being restarted. Instead, the activity remains running and its onConfigurationChanged() method is called.
<activity ... android:configChanges="...|uiMode" ... />
Reproducera
1. Installera Car Mode Control (så behöver du ingen bilhållare)
2. Starta Turf-appen och sätt på GPS:en
4. Gå till hemskärmen och kör Car Mode control. En bild på en ratt dyker upp i statusraden.
5. Växla till Turf-appen men utan att sätta på GPS
6. Avsluta Turf-appen. Turf-ikonen försvinner.
7. GPS-ikonen är fortfarande kvar och din position visas på turfgame.com och för andra spelare!
8. Gå till Inställningar -> Program för att tvinga stopp av Turf-appen. Då försvinner GPS-ikonen.