← Alle utvidelser

Native utvidelse

KlugBlackScreen

com.klug.blackscreen

INGEN APM NØDVENDIG. Last ned og bruk. Det blir ikke enklere enn dette.

Gjenoppretter skjermen på Android etter at et systemvindu, for eksempel en tillatelsesforespørsel, en dialog eller tastaturet, er lukket.

Android Under utvikling

Oversikt

På enkelte Android-enheter kan skjermen til en app forbli svart etter at et systemvindu har lukket seg oppå den: en tillatelsesforespørsel, en dialog eller skjermtastaturet. Appen kjører fortsatt, men ingenting tegnes før neste endring.

KlugBlackScreen tegner appens visning på nytt så snart et slikt vindu lukkes. Slått på én gang ved start fungerer den automatisk i bakgrunnen. For spesialtilfeller kan den også utløses direkte.

Funksjoner

  • Automatisk modus: slå på én gang, den tegner på nytt etter hvert systemvindu
  • Manuell ny tegning for spesialtilfeller
  • En mild ny tegning uten flimmer, og en kraftigere for hardnakkede tilfeller
  • Gjør ingenting på andre plattformer, slik at koden kan bli værende i en plattformuavhengig app

Støttede plattformer

Android arm64 · armv7

Kom i gang

Legg utvidelsen til i applikasjonsbeskrivelsen din:

app.xml
<extensions>
    <extensionID>com.klug.blackscreen</extensionID>
</extensions>

Kodeeksempler

Tre flyter. Hvert kall returnerer med en gang og gjør jobben på Android UI-tråden; på andre plattformer gjør kallene ingenting.

1 · Slå på én gang ved start
Main.as
import com.klug.blackscreen.BlackScreen;

// once, in the constructor of your main class: from now on the view is redrawn
// whenever the app window gets the focus back, after a permission prompt,
// a dialog, the keyboard or another activity
BlackScreen.getInstance().startAuto();   // a second call has no effect

// iOS, macOS and desktop: isSupported is false and every call does nothing,
// so no platform check is needed. stopAuto() switches it off again (rarely needed).
2 · Tegn på nytt etter at et systemvindu lukkes
Permissions.as
// call this from the result handler of any system window that covered the app:
// a permission prompt, a share sheet, a native dialog, a sign-in page
function onSystemWindowClosed():void
{
    BlackScreen.getInstance().fix();     // redraw once, no flicker
}

// example: your own permission flow reports back
myPermissionFlow.onResult = function( granted:Boolean ):void {
    onSystemWindowClosed();
    if ( granted ) startCamera(); else showPermissionHint();
};
3 · Kraftigere ny tegning ved retur til appen
Resume.as
import flash.desktop.NativeApplication;
import flash.events.Event;

// back from another activity (share sheet, browser, system settings) and fix()
// is not enough on a given runtime build: the stronger redraw may flicker once
NativeApplication.nativeApplication.addEventListener( Event.ACTIVATE, function( e:Event ):void {
    BlackScreen.getInstance().fixHard();
});

// the first fixHard() replaces the launch background of the window with plain white,
// so the short toggle does not show the splash image

API-oversikt

BlackScreen.getInstance()Returnerer den ene instansen.
isSupportedTrue på Android; false på iOS, macOS og skrivebord, der alle kall ikke gjør noe.
startAuto()Tegner automatisk på nytt hver gang appvinduet får fokus tilbake, for eksempel etter at et systemvindu lukkes. Kall én gang ved start; et andre kall har ingen effekt.
stopAuto()Stopper den automatiske modusen.
fix()Tegner visningen på nytt én gang, uten flimmer.
fixHard()Kraftigere ny tegning for hardnakkede tilfeller, med et kort flimmer. Det første kallet erstatter vinduets oppstartsbakgrunn med ren hvit.

Krav

AIR SDK51.x (HARMAN)
AndroidAndroid 6.0 (API 23) eller nyere
TillatelserIngen