← Alla tillägg

Inbyggt tillägg

KlugBlackScreen

com.klug.blackscreen

INGEN APM BEHÖVS. Ladda ner och njut. Det blir inte enklare än så.

Återställer skärmen på Android efter att ett systemfönster, till exempel en behörighetsfråga, en dialog eller tangentbordet, har stängts.

Android Under utveckling

Översikt

På vissa Android-enheter kan en apps skärm förbli svart efter att ett systemfönster har stängts ovanpå den: en behörighetsfråga, en dialog eller tangentbordet på skärmen. Appen körs fortfarande, men inget ritas förrän nästa ändring.

KlugBlackScreen ritar om appens vy så snart ett sådant fönster stängs. Slås det på en gång vid start fungerar det automatiskt i bakgrunden. För specialfall kan det också utlösas direkt.

Funktioner

  • Automatiskt läge: slå på en gång, det ritar om efter varje systemfönster
  • Manuell omritning för specialfall
  • En skonsam omritning utan flimmer, och en kraftfullare för envisa fall
  • Gör ingenting på andra plattformar, så koden kan ligga kvar i en plattformsoberoende app

Plattformar som stöds

Android arm64 · armv7

Kom igång

Lägg till tillägget i din applikationsbeskrivning (application descriptor):

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

Kodexempel

Tre flöden. Varje anrop returnerar direkt och utför sitt arbete på Androids UI-tråd; på andra plattformar gör anropen ingenting.

1 · Slå på en gång vid 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 · Rita om efter att ett systemfönster stängts
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 · Kraftfullare omritning vid återkomst till 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-översikt

BlackScreen.getInstance()Returnerar den enda instansen.
isSupportedTrue på Android; false på iOS, macOS och skrivbord, där varje anrop inte gör något.
startAuto()Ritar om automatiskt varje gång appfönstret får fokus tillbaka, till exempel efter att ett systemfönster stängts. Anropa en gång vid start; ett andra anrop har ingen effekt.
stopAuto()Stoppar det automatiska läget.
fix()Ritar om vyn en gång, utan flimmer.
fixHard()Kraftfullare omritning för envisa fall, med ett kort flimmer. Det första anropet ersätter fönstrets startbakgrund med vanlig vit.

Krav

AIR SDK51.x (HARMAN)
AndroidAndroid 6.0 (API 23) eller senare
BehörigheterInga