Vraag Voorkomen dat de oriëntatie van de Live Wallpaper verandert wanneer een applicatie wordt geopend en de oriëntatie wordt gewijzigd?


Ik heb een probleem met de oriëntatie met een Live Wallpaper die ik heb geschreven. In principe zal het canvas draaien afhankelijk van de toepassing die erboven is geopend. Ik testte dit en realiseerde me dat de methode onSurfaceChanged () wordt geactiveerd wanneer ik terugkeer naar het startscherm vanuit een eerder geopende toepassing waarin de richting is gewijzigd.

Ik veronderstel dat een betere vraag zou zijn, waarom verandert mijn Live Wallpaper Surface-verandering wanneer een toepassing wordt geopend en de oriëntatie van de achtergrond wordt gewijzigd?  Is er een manier om te voorkomen dat mijn Live Wallpaper-oriëntatie ooit verandert? Bedankt, hoop dat dat logisch is?


11
2017-12-07 02:44


oorsprong


antwoorden:


Android-app herstart de activiteit wanneer de oriëntatie verandert. Je kunt het gebruiken

  1. android: configChanges in je manifest. De activiteit wordt standaard afgesloten en opnieuw gestart als er tijdens runtime een configuratiewijziging plaatsvindt, maar als een configuratie met dit kenmerk wordt gedeclareerd, wordt de activiteit niet opnieuw gestart. In plaats daarvan blijft de activiteit actief en de activiteit onConfigurationChanged() methode wordt genoemd.
  2. gebruik android: screenOrientatin = "portret"of"landschap"het zal de app dwingen om te draaien in de modus die je opgeeft, maar het zal niet voorkomen dat de activiteit wordt afgesloten en opnieuw wordt opgestart.

1
2018-01-13 11:14



U kunt de schermoriëntatie verwerken vanuit de android.service.wallpaper.WallpaperService.Motor klasse met de volgende methode:

public void onSurfaceChanged(SurfaceHolder holder, int format, int width, int height)

... pas de gebeurtenis dienovereenkomstig aan.

U KAN NIET toevoegen android: configChanges noch android: screenOrientation naar een WallpaperService! (Die u gebruikt bij het maken van een live wallpaper)

Ik zou dit hebben toegevoegd als commentaar op het antwoord van 'Anirudha', maar ik heb niet genoeg reputatie om dat te doen.


1
2017-10-27 20:00