Eseguire un metodo dopo un’attività è visibile all’utente

Ho un’attività contiene troppi controlli dell’interfaccia utente. Voglio eseguire un metodo dopo a fare l’attività visibile.

Un esempio che ho provato:

public class Main extends Activity{

    @Override
    public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.main);
             MyMethod();
    }

    private void MyMethod(){
        Toast.makeText(this, "Hi UI is fully loaded", Toast.LENGTH_SHORT).show();
    }
}

Ma nell’esempio precedente, il messaggio di prima l’attività è visibile.

C’è un modo per scoprire, se l’attività è completamente visibile ?

  • spostare onResume
  • provare in onResume()
InformationsquelleAutor Riskhan | 2013-10-11



5 Replies
  1. 26

    Spostare il codice di onResume

    @Override
    protected void onResume()
    {
        super.onResume();
        MyMethod();
    }

    Controllare le attività del ciclo di vita

    http://developer.android.com/reference/android/app/Activity.html

    protected void onResume ()

    Chiamato dopo onRestoreInstanceState(Bundle), onRestart(), o onPause(), per le attività di interagire con l’utente. Questo è un buon posto per iniziare animazioni, aperto in esclusiva-dispositivi di accesso (come ad esempio la fotocamera), etc.

    Tenere a mente che onResume non è il migliore indicatore che la vostra attività è visibile all’utente; una finestra di sistema come il blocco della tastiera può essere nella parte anteriore. Utilizzare onWindowFocusChanged(boolean) per sapere con certezza che la vostra attività è visibile all’utente (ad esempio, per riprendere il gioco).

    Le classi derivate devono chiamata a super classe di implementazione di questo metodo. Se non, verrà generata un’eccezione.

    • Questo sarà chiamato prima di metodo oncreateoptionsmenu che è problematico se avete bisogno di fare qualcosa con. Per esempio, l’utente consente di ruotare lo schermo in mezzo a una barra degli strumenti di ricerca. È necessario reimpostare la ricerca del punto in cui si trovava al momento della rotazione. Questo richiede di conoscere le informazioni disponibili solo dopo la chiamata al metodo oncreateoptionsmenu. ecco l’ordine e ho onResume chiamato onAttachedToWindow chiamato metodo oncreateoptionsmenu chiamato onPrepareOptionsMenu chiamato
    • manipolazione di rotazione è assolutamente un problema diverso. onResume è quando l’utente può iniziare a interagire con l’interfaccia utente. Si dovrebbe leggere il ciclo di vita delle attività da android docs
    • sì, perché uno che inizia da zero. Vorrei sapere cos’ultima chiamata sistematicamente consegnato dal sistema. Ma se avete bisogno di opzioni di menu (che faccio io) non lo fa in onResume()
  2. 4

    Spostare il codice a onAttachedToWindow()

    @Override
    public void onAttachedToWindow() {
       super.onAttachedToWindow();
       Toast.makeText(this, "Hi UI is fully loaded", Toast.LENGTH_SHORT).show();
    }
  3. 3

    non c’è nessuna reale di callback, che è chiamato, proprio in quel periodo l’Attività è Visibile. Ma, come potete vedere nella foto allegata, il metodo onResume() è appena chiamato quando l’Attività deve essere visibile.

    Anche un’occhiata alle Attività del ciclo di vita della documentazione QUI

    Quindi, il metodo deve essere chiamato come questo:

    @Override
    public void onResume() {
        super.onResume();
         MyMethod();
    }

    Eseguire un metodo dopo un'attività è visibile all'utente

  4. 2

    Chiamata MyMethod() in onResume() di Attività

    Come da documentazione onResume() viene chiamato quando l’attività avrà inizio l’interazione con l’utente. A questo punto la vostra attività è in cima delle attività di stack, con l’input dell’utente va.

    protected void onResume() {
       super.onResume();
       MyMethod();
    }

Lascia un commento