Domanda

Voglio fare un'attività che permette di cambiare l'orientamento a una certa condizione, ma non altrimenti. Più esattamente Voglio evitare che il riavvio l'attività quando un thread in background è occupato.

Ho messo l'attributo configChanges sul manifesto di attività, e onConfigurationChanged viene chiamato quando i cambiamenti di orientamento. Tuttavia voglio permettere l'applicazione per modificare l'orientamento quando consentito .

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);

    if (orientationChangeAllowed) {
        // how do I restart this activity?
    } else {
        // don't do anything
    }
}
È stato utile?

Soluzione

se è permesso chiamata setRequestedOrientation(), quando non è permesso, non fare nulla.

Come un suggerimento: è possibile utilizzare onRetainNonConfigurationInstance() e getLastNonConfigurationInstance() e ritorno (un oggetto che contiene) il AsyncThread. In questo modo il Activity cambierà l'orientamento quando l'utente vuole. Prendete nota però:. Non si dovrebbe fuoriuscire un riferimento a un Context (potrebbe essere un riferimento al vostro Activity o un Drawable, ...)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top