Domanda

Voglio andare alla schermata iniziale di programmazione in Android quando l'utente fa clic sul pulsante. Come si può fare?

È stato utile?

Soluzione

È possibile farlo attraverso un Intent .

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(startMain);

Questo intento inizierà l'avvio delle applicazioni che l'utente ha definito. Fate attenzione con questo, perché questo sguardo volontà come l'applicazione si è schiantato se l'utente non si aspetta questo.

Se si desidera che questo per costruire un pulsante di uscita dalla tua app si prega di leggere questo articolo su pulsanti di uscita in Android

Altri suggerimenti

Una soluzione riga

moveTaskToBack(true); //activity.moveTaskToBack(true);

si comporterà come viene premuto il pulsante Home

La risposta di Janusz è grande.

L'unica cosa che voglio aggiungere, che è un po 'troppo lungo per un commento, è che si può andare alla schermata principale senza avere un riferimento all'attività corrente.

Codice di Janusz deve essere chiamato da un'attività o un frammento a causa di startActivity(),

Per aggirare il problema, è possibile memorizzare un riferimento statico al vostro app contesto nel suo dossier di candidatura:

public class YourApplication extends Application
{

    private static Context mAppContext;

    public void onCreate()
    {
        super.onCreate();
        ...
        YourApplication.mAppContext = getApplicationContext();
    }

    public static Context getContext()
    {
        return mAppContext;
    }

}

Ora è possibile inviare l'utente alla schermata iniziale del dispositivo da qualsiasi classe nella vostra applicazione, non solo Attività, frammenti, o di altre Classi con un riferimento alla corrente di attività (è possibile decidere se questo è un bene o un male) :

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
YourApplication.getContext().startActivity(startMain);

Android sito degli sviluppatori

Ecco alcuni esempi di altre operazioni che è possibile specificare come intenti usando questi parametri aggiuntivi:

* ACTION_MAIN with category CATEGORY_HOME -- Launch the home screen.
startActivity((new Intent(Intent.ACTION_MAIN)).addCategory(Intent.CATEGORY_HOME).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));

So che questo è un po 'tardi, ma ho anche incontrato lo stesso problema ed ecco come ho risolto esso. Tornando alla tua MainActivity è necessario aggiungere le bandiere dal eccitante Activity

    final Intent mainActivity = new Intent(this, MainActivity.class);
    mainActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    mainActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);

Ora, quando si è premuto il pulsante Indietro essere MainActivity quella attiva, si andrà alla schermata iniziale.

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