← Alle udvidelser

Native udvidelse

KlugBlackScreen

com.klug.blackscreen

INGEN APM NØDVENDIG. Download og nyd. Det bliver ikke enklere.

Genopretter skærmvisningen på Android, efter at et systemvindue, f.eks. en tilladelsesforespørgsel, en dialog eller tastaturet, er lukket.

Android Under udvikling

Oversigt

På nogle Android-enheder kan en apps skærm forblive sort, efter at et systemvindue er lukket oven på den: en tilladelsesforespørgsel, en dialog eller tastaturet på skærmen. Appen kører stadig, men der tegnes intet før næste ændring.

KlugBlackScreen gentegner appens view, så snart et sådant vindue lukkes. Aktiveret én gang ved start virker den automatisk i baggrunden. Til specialtilfælde kan den også udløses direkte.

Funktioner

  • Automatisk tilstand: aktivér én gang, den gentegner efter hvert systemvindue
  • Manuel gentegning til specialtilfælde
  • En blid gentegning uden flimmer og en kraftigere til genstridige tilfælde
  • Gør intet på andre platforme, så koden kan blive i en cross-platform-app

Understøttede platforme

Android arm64 · armv7

Kom i gang

Tilføj udvidelsen til din applikationsdescriptor:

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

Kodeeksempler

Tre flows. Hvert kald vender straks tilbage og udfører sit arbejde på Androids UI-tråd; på andre platforme gør kaldene intet.

1 · Aktivér é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 · Gentegn, efter at et systemvindue 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 gentegning 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-oversigt

BlackScreen.getInstance()Returnerer den enkelte instans.
isSupportedSand på Android; falsk på iOS, macOS og desktop, hvor hvert kald ikke gør noget.
startAuto()Gentegner automatisk, hver gang appvinduet får fokus igen, f.eks. efter at et systemvindue lukkes. Kald én gang ved start; et andet kald har ingen effekt.
stopAuto()Stopper den automatiske tilstand.
fix()Gentegner viewet én gang, uden flimmer.
fixHard()Kraftigere gentegning til genstridige tilfælde, med et kort flimmer. Det første kald erstatter vinduets startbaggrund med almindelig hvid.

Krav

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