← Kaikki laajennukset

Natiivilaajennus

KlugBlackScreen

com.klug.blackscreen

APM EI OLE TARPEEN. Lataa ja nauti. Yksinkertaisempaa ei voi olla.

Palauttaa näytön Androidilla sen jälkeen, kun järjestelmän ikkuna, kuten lupakysely, dialogi tai näppäimistö, on sulkeutunut.

Android Kehitteillä

Yleiskatsaus

Joillakin Android-laitteilla sovelluksen näyttö voi jäädä mustaksi sen päälle avautuneen järjestelmäikkunan sulkeuduttua: lupakysely, dialogi tai näytön näppäimistö. Sovellus on yhä käynnissä, mutta mitään ei piirretä ennen seuraavaa muutosta.

KlugBlackScreen piirtää sovelluksen näkymän uudelleen, heti kun tällainen ikkuna sulkeutuu. Kerran käynnistyksessä käyttöön otettuna se toimii automaattisesti taustalla. Erikoistapauksia varten sen voi myös käynnistää suoraan.

Ominaisuudet

  • Automaattinen tila: ota käyttöön kerran, se piirtää uudelleen jokaisen järjestelmäikkunan jälkeen
  • Manuaalinen uudelleenpiirto erikoistapauksiin
  • Hellävarainen uudelleenpiirto ilman välkyntää ja voimakkaampi sitkeitä tapauksia varten
  • Ei tee mitään muilla alustoilla, joten koodi voi pysyä monialustaisessa sovelluksessa

Tuetut alustat

Android arm64 · armv7

Aloitus

Lisää laajennus sovelluksesi descriptoriin:

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

Koodiesimerkit

Kolme esimerkkiä. Jokainen kutsu palaa heti ja tekee työnsä Androidin UI-säikeessä; muilla alustoilla kutsut eivät tee mitään.

1 · Ota käyttöön kerran käynnistyksessä
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 · Piirrä uudelleen järjestelmäikkunan sulkeutumisen jälkeen
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 · Voimakkaampi uudelleenpiirto sovellukseen palattaessa
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

Rajapintayleiskatsaus

BlackScreen.getInstance()Palauttaa yksittäisen instanssin.
isSupportedTrue Androidilla; false iOS:llä, macOS:llä ja työpöydällä, joissa jokainen kutsu ei tee mitään.
startAuto()Piirtää automaattisesti uudelleen aina, kun sovellusikkuna saa fokuksen takaisin, esimerkiksi järjestelmäikkunan sulkeutumisen jälkeen. Kutsu kerran käynnistyksessä; toinen kutsu ei vaikuta mihinkään.
stopAuto()Pysäyttää automaattisen tilan.
fix()Piirtää näkymän kerran uudelleen ilman välkyntää.
fixHard()Voimakkaampi uudelleenpiirto sitkeitä tapauksia varten, lyhyen välkynnän kera. Ensimmäinen kutsu korvaa ikkunan käynnistystaustan pelkällä valkoisella.

Vaatimukset

AIR SDK51.x (HARMAN)
AndroidAndroid 6.0 (API 23) tai uudempi
OikeudetEi mitään