• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
Locked
2

Black screen on Android when returning from sleep

Engaged ,
Aug 31, 2017 Aug 31, 2017

Copy link to clipboard

Copied

I found a few posts - most quite old - this one appeared to have resolved the issue for some:

https://forum.starling-framework.org/topic/air-18-black-screen-after-standby-on-android#post-82165

Nothing worked for me - I did figure out a workaround though:

Add a listener in your main Context:

NativeApplication.nativeApplication.addEventListener(flash.events.Event.ACTIVATE , activateHandler);

In the handler - add a dummy object like a button to the stage (you can set its alpha to 0) then simply remove it after a quarter second.  The removal of the object appears to kick the display back on.  Note, if you try to remove the object too quickly, the display will stay black.

TOPICS
Air beta

Views

3.5K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Aug 31, 2017 Aug 31, 2017

Copy link to clipboard

Copied

I can imagine cases where setting the stage quality to what it already is, might not do anything. On deactivate I do:

stage.quality = "low";

and on activate:

stage.quality = "medium";

Now, if you're entirely using Stage3D you can get away with a stage quality of "low", so you could do the reverse of what I do.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Aug 31, 2017 Aug 31, 2017

Copy link to clipboard

Copied

This was the answer I found in the old posts - but it didn't work for me - only adding and removing an object fixed the issue.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Aug 31, 2017 Aug 31, 2017

Copy link to clipboard

Copied

The post you linked to did a stage.quality = stage.quality, which is different to the way I do it.

Then again, I'm doing a lot of display list things, so that might be why it works for me.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Aug 31, 2017 Aug 31, 2017

Copy link to clipboard

Copied

Gotcha..  Yes, I tried both.  Follow the link in that post there's also mention of doing it the way you suggested.  We actually have a custom bootstrap - in there we start and stop Starling from an activate/deactivate. I have your solution for setting the quality and then reseting it in there, just in case this was somehow device specific (we're testing on a low end phone). We actually kick the events into the framework rather than adding a listener directly in the Context.  A quarter second of black still isn't optimal..  but as long as there are workarounds.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
Mar 22, 2018 Mar 22, 2018

Copy link to clipboard

Copied

doing  if(stage) stage.quality = stage.quality, onActivate event does fix this issue.

weird after more than 1 year still not fixed by adobe air

we encounter this issue only on Android 8 Oreo

but the workaround still works thanks !

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Aug 27, 2018 Aug 27, 2018

Copy link to clipboard

Copied

i have tried all the solutions up there and no one solve me the issue, i am still getting black screen when back from sleep state at Samsung Galaxy S8, here is my ACTIVATE code:

private function AppActiveHandler(e:Event):void

{

if(game_ != null)

{

game_.AppActiveHandler();

}

if(starling_ != null)

{

starling_.start();

}

// sometimes after activating the app (in very rare cases) the render is stopped

// this is the workaround to avoid this scenario.

if (nativeStage_ != null)

{

//var quality:String = nativeStage_.quality;

nativeStage_.quality = StageQuality.BEST

var q:Quad = new Quad(starling_.stage.width, starling_.stage.height);

q.x = 0;

q.y = 0;

starling_.stage.addChild(q);

Starling.juggler.delayCall(function ():void

{

starling_.stage.removeChild(q);

}, 0.25);

}

}

please suggest how should i solve this issue?

thanks.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
LEGEND ,
Aug 27, 2018 Aug 27, 2018

Copy link to clipboard

Copied

There may be some things worth trying mentioned in this discussion:

context lost « Starling Forum

Check what Daniel suggests.

If things are still bad, and especially if you can make a demo file for them to check, you could raise an issue in GitHub:

GitHub - Gamua/Starling-Framework: The Cross Platform Game Engine 

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Oct 19, 2018 Oct 19, 2018

Copy link to clipboard

Copied

LATEST

Sorry for late reply..  I would use a setTimeOut() rather than juggler - and rather than a quad try an interactive component like a button.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines